操作Hibernate类:增加,删除,修改及查询

开发 后端
本篇文章讲述操作Hibernate类的实现:增加,删除,修改及查询。具体来说,就是增加,删除,修改,按ID查询,模糊查询,以及查询全部。

操作Hibernate类大致有增加,删除,修改及检查四种,简称为增删改查。以下为实现代码:

  1. /*  
  2. *具体操作hibernate的类  
  3. *增加,删除,修改,按ID查询,模糊查询,查询全部  
  4. **/ 
  5. public class PersonOperate {  
  6. //在hibernate中所有操作都是由Session完成  
  7. public Session session = null;  
  8.  
  9. //在构造方法中实例化Session对象  
  10. public PersonOperate(){  
  11.     //找出hibernate的配置  
  12.     Configuration config = new Configuration().configure();  
  13.     //从配置中取出SessionFactory  
  14.     SessionFactory sf = config.buildSessionFactory();  
  15.     //从SessionFactory中取出Session  
  16.     this.session = sf.openSession();  
  17. }  
  18.  
  19. //操作Hibernate类的所有操作都是通过Session完成的  
  20.  
  21. //增加数据库中数据  
  22. public void insert(Person person){  
  23.     //开始事务  
  24.     Transaction tran =    session.beginTransaction();  
  25.     //执行语句  
  26.     session.save(person);  
  27.     //提交事务  
  28.     tran.commit();  
  29.     session.close();   
  30. }  
  31.  
  32. //操作Hibernate类更改数据库中的数据  
  33. public void update(Person person){  
  34.     //开始事务  
  35.     Transaction tran =    session.beginTransaction();  
  36.     //执行语句  
  37.     session.update(person);  
  38.     //提交事务  
  39.     tran.commit();   
  40. }  
  41.  
  42. /*操作Hibernate类:按ID查询  
  43.     *我们插入,修改都是对对象进行操作  
  44.     *那么我们查询的时候也应该是返回一个对象  
  45.     **/ 
  46. public Person queryById(String id){  
  47.     System.out.println(id);  
  48.     Person person = null;  
  49.     //hibernate查询语句  
  50.     String hql = "FROM Person as p WHERE p.id = ?";  
  51.     Query q = session.createQuery(hql);  
  52.     q.setString(0, id);  
  53.     List list = q.list();  
  54.     Iterator iteator = list.iterator();  
  55.     if(iteator.hasNext()){  
  56.      person = (Person)iteator.next();  
  57.     }  
  58.     return person;  
  59. }  
  60.  
  61. /*操作Hibernate类:删除数据库中数据  
  62.     *hiberante2,hibernate3中通用的删除方法  
  63.     *缺点:删除数据之前要先查询一次数据,找出删除的数据对象  
  64.     *性能低下  
  65.     **/ 
  66. public void delete(Person person){  
  67.     //开始事务  
  68.     Transaction tran =    session.beginTransaction();  
  69.     //执行语句  
  70.     session.delete(person);  
  71.     //提交事务  
  72.     tran.commit();   
  73. }  
  74.  
  75. //hibernate3的用法  
  76. public void delete(String id){  
  77.     //开始事务  
  78.     Transaction tran =    session.beginTransaction();  
  79.     String hql = "DELETE Person WHERE id = ?";  
  80.  
  81.     Query q = session.createQuery(hql);  
  82.     q.setString(0, id);  
  83.     //执行更新语句  
  84.     q.executeUpdate();  
  85.     //提交事务  
  86.     tran.commit();  
  87. }  
  88.  
  89. //操作Hibernate类:查询全部数据  
  90. public List queryAll(){  
  91.     List list = null;  
  92.     String hql = "FROM Person as p ";  
  93.     Query q = session.createQuery(hql);  
  94.     list = q.list();  
  95.     return list;  
  96. }  
  97.  
  98. //操作Hibernate类:模糊查询  
  99. public List queryByLike(String colnum,String value){  
  100.     List list = null;  
  101.     String hql = "FROM Person as p WHERE p."+ colnum +" like ?";  
  102.     Query q = session.createQuery(hql);  
  103.     q.setString(0, "%"+ value +"%");  
  104.     list = q.list();  

【编辑推荐】

  1. 对于选择Hibernate还是iBatis的看法
  2. Hibernate缓存分类,范围及管理配置
  3. J2EE实现分页:Hibernate自定义标签
  4. Hibernate中使用Criteria查询实例
  5. Hibernate中使用DetchedCriteria
责任编辑:book05 来源: 百度博客
相关推荐

2010-09-03 13:51:10

SQL删除约束

2010-09-25 11:50:47

sql server外

2009-07-22 16:27:24

iBATIS配置类iBATIS操作类

2009-09-23 16:54:08

Hibernate修改

2009-09-24 15:27:41

Hibernate查询

2009-09-22 08:39:59

Hibernate F

2009-06-18 09:14:08

Hibernate H

2009-06-26 10:01:00

Hibernate的查

2009-06-17 08:47:00

Hibernate优化

2009-09-22 09:13:43

Hibernate D

2009-09-29 16:29:40

Hibernate查询

2009-09-27 10:19:11

Hibernate命名

2009-06-18 09:47:50

2009-09-24 09:35:47

Hibernate插入

2011-03-03 09:42:13

PureFTPd

2010-04-27 13:39:05

Oracle OCR镜

2009-06-03 10:02:53

Hibernate批量删除

2009-06-17 10:47:36

Hibernate级联级联删除

2022-12-30 09:12:55

查询es搜索值

2009-03-10 15:05:16

JDBC泛型数据库
点赞
收藏

51CTO技术栈公众号