日期:2014-05-18 浏览次数:20699 次
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);