操作Hibernate类:增加,删除,修改及查询
创始人
2024-04-09 09:40:20
0

操作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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...