您的位置:首页 > 其它

Hibernate 基本数据操作(增删改查)

2010-03-24 15:45 99 查看
package com.sunyard.DBO;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Query; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.sunyard.bean.Person;

/*
* 具体操作Hibernate的类
* 增加、删除、修改、按ID查询、模糊查询、查询全部操作
*/
public class PersonDBO {

//在Hibernate中,所有的操作都是在Session中完成
//此Session不同于JSP中的Session
private Session session=null;

//在构造方法中实例化Session对象
public PersonDBO(){
//找到Hibernate配置
Configuration config=new Configuration().configure();
//从配置中取出SessionFactory
SessionFactory factory=config.buildSessionFactory();
//从SessionFactory中取出一个Session
this.session=factory.openSession();
}

//所有的操作都是通过session进行的
//插入
public void insert(Person p){
//打开事务
Transaction tran=this.session.beginTransaction();
//执行插入语句
this.session.save(p);
//提交事务
tran.commit();
this.session.close();
}

//更改
public void update(Person p){
//打开事务
Transaction tran=this.session.beginTransaction();
//执行插入语句
this.session.update(p);
//提交事务
tran.commit();
this.session.close();
}

//按ID查询 推荐用HQL
public Person queryById(String id){
Person p=null;
//使用Hibermate查询语句
String hql="from Person as p where p.id=?";
//通过Query接口查询
Query q=this.session.createQuery(hql);
q.setString(0,id);
List l=q.list();
Iterator iter=l.iterator();
if(iter.hasNext()){
p=(Person)iter.next();
}
this.session.close();
return p;
}

//删除1
//使用此方法删除数据之前,必须先查找到数据对象,性能会打折
public void delete(Person p){
//打开事务
Transaction tran=this.session.beginTransaction();
//执行插入语句
this.session.delete(p);
//提交事务
tran.commit();
this.session.close();
}

//根据HQL的语句进行了修改,增加了删除指令
public void delete(String id){

Transaction tran=this.session.beginTransaction();
String hql="delete Person where id=?";
Query q=this.session.createQuery(hql);
//设置参数
q.setString(0, id);
//执行更新语句
q.executeUpdate();
tran.commit();
this.session.close();
}

//查询全部数据,写HQL
public List queryALL(){
List l=null;
String hql="from Person as p";
Query q=this.session.createQuery(hql);
l=q.list();
this.session.close();
return l;
}

//模糊查询
public List queryByLike(String cond){
List l=null;
String hql="from Person as p where p.name like ?";
Query q=this.session.createQuery(hql);
q.setString(0, "%"+cond+"%");
l=q.list();
this.session.close();
return l;
}

}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/orphen_lee/archive/2009/09/15/4553437.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: