Hibernate对数据库操作的实例代码:
package org.lxh.hibernate.demo01; 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; /* * 具体操作Hibernate的类: * 增加、删除、修改、按ID查询、模糊查询、查询全部操作 * */ public class PersonOperate { // 在Hibernate中,所有的操作都是通过Session完成 // 此Session不同于JSP的Session private Session session = null ; // 在构造方法之中实例化session对象 public PersonOperate() { // 找到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() ; // 关闭Session this.session.close() ; } // 修改 public void update(Person p) { // 开始事务 Transaction tran = this.session.beginTransaction() ; // 执行语句 this.session.update(p) ; // 提交事务 tran.commit() ; } // 按ID查询:推荐使用HQL —— 是Hibernate官方推荐的查询语言 public Person queryById(String id) { Person p = null ; // 使用Hibernate查询语言 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() ; } return p ; } // 删除数据 // Hibernate2、Hibernate 3通用的删除 // 使用此方法删除数据之前,必须先查找到数据对象和性能。 public void delete(Person p) { Transaction tran = this.session.beginTransaction() ; // 执行语句 this.session.delete(p) ; // 提交事务 tran.commit() ; } // 在Hibernate 3之中根据HQL中的语句进行了修改,增加了删除指令 public void delete(String id) { String hql = "DELETE Person WHERE id=?" ; Query q = this.session.createQuery(hql) ; // 把参数设置 q.setString(0,id) ; // 执行更新语句 q.executeUpdate() ; // 进行事务处理 this.session.beginTransaction().commit() ; } // 查询全部数据,写HQL public List queryAll() { List l = null ; String hql = "FROM Person as p" ; Query q = this.session.createQuery(hql) ; l = q.list() ; 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() ; return l ; } } |