全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

hibernate增删改查操作代码

Hibernate对数据删除操作

删除User表中个一条数据,是需要更具User表的主键id值来删除的。首先根据id值向数据库中查询出来对应的对象。可以采用两种方式一是session的get方法,一个是session的load方法。

Session的Get方法:调用这个方法会返回一个Object对象。然后我们对其强制转换。Useruser = (User)session.get(User.class,” 402881e5441c035e01441c0360510003”); 当我们传递id值在数据中查找没有相应的结果时,get方法会返回一个null值。

   区别:get方法加载的时候会立刻发出sql语句去查询,而load方法在执行的时候没有立刻的发出sql去查询,生成一个代理User,没有生成真正的User。当我们真正的去用这个user的时候才会加载真正的User。Load()支持延迟加载,而Get()不支持延迟加载。Get加载的对象不存在时返回的是null对象,而Load()加载对象不存在时会抛出ObjectNotFoundException异常。

   Session的Load方法:同样是调用这个方法返回一个Object对象,再进行强制转换。

然后我们通过get或load加载上来对应user表id的对象,再调用session的delete方法删除该对象同时删除表中的一条记录,代码如下所示。

第一种删除方式。         

publicvoid testDel1()
   {
    Sessionsession =null;
    
    try
    {
     session= HibernateUtils.getSession();
     //开启事务.
     session.beginTransaction();
     //采用load查询不存在的数据,hibernate会抛出object not found exception
     Useruser = (User)session.load(User.class,"402881e5441c035e01441c0360510003");
     
     //删除表中的记录.
     //删除,建议用此种方式删除,先加载再删除.
     session.delete(user);
     
     //提交事务.把内存的改变提交到数据库上.
     session.getTransaction().commit();
     
    }catch(Exception e){
     e.printStackTrace();
     session.getTransaction().rollback();
    }finally{
     HibernateUtils.closeSession(session);
    }
    
   }

 第二种删除方式,手动构造detached对象再删除

代码如下所示。

//测试方法以test开头.测试del方法.返回存在的加载的.
   publicvoid testDel2()
   {
    Sessionsession =null;
    
    try
    {
     session= HibernateUtils.getSession();
     //开启事务.
     session.beginTransaction();
     
     //手动构造的Detached对象.
     User user =new User();
     user.setId("402881e4441b3d1c01441b3f5dfe0001");
     session.delete(user);
     
     
     //提交事务.把内存的改变提交到数据库上.
     session.getTransaction().commit();
     
    }catch(Exception e){
     e.printStackTrace();
     session.getTransaction().rollback();
    }finally{
     HibernateUtils.closeSession(session);
    }
    
   }

Hibernate对数据查询操作

一般查询,代码如下所示。

//查询方法.
 publicvoid testQuery1()
 {
  Sessionsession =null;
  try
  {
  session= HibernateUtils.getSession();
  
  session.beginTransaction();
  //参数是一个字符串,是HQL的查询语句.注意此时的的UserU为大写,为对象的,而不是表的.
  Queryquery = session.createQuery("from User");
  
  //使用List方法.
  List userList = query.list();
  //迭代器去迭代.
  for(Iterator iter=userList.iterator();iter.hasNext();)
  {
   Useruser =(User)iter.next();
   System.out.println("id="+user.getId() + "name="+user.getName());
  }
  
  session.getTransaction().commit();
  }catch(Exception e){
  e.printStackTrace();
  session.getTransaction().rollback();
  }finally{
  HibernateUtils.closeSession(session);
  }
 }

 分页查询,代码如下所示。

//分页查询,从什么地方查,查几个;
 publicvoid testQuery2()
 {
  Sessionsession =null;
  try
  {
  session=HibernateUtils.getSession();
  session.beginTransaction();
  //参数是一个字符串,是HQL的查询语句.注意此时的的UserU为大写,为对象的,而不是表的.
  Queryquery = session.createQuery("from User");
  //从第一个开始查起.可以设置从第几个查起.
  query.setFirstResult(0);
  //最大条数为两个
  query.setMaxResults(2);
  //使用List方法.
  List userList = query.list();
  //迭代器去迭代.
  for(Iterator iter=userList.iterator();iter.hasNext();)
  {
   Useruser =(User)iter.next();
   System.out.println("id="+user.getId() + "name="+user.getName());
  }
  session.getTransaction().commit();
  }catch(Exception e){
  e.printStackTrace();
  session.getTransaction().rollback();
  }finally{
  HibernateUtils.closeSession(session);
  }
 }

Hibernate对数据更新操作

手动构造detached对象,调用session的update()方法,代码如下所示。          

 //测试方法以test开头.测试update方法.返回存在的加载的.
   publicvoid testUpdate1()
   {
    Sessionsession =null;
    try
    {
     session= HibernateUtils.getSession();
     //开启事务.
     session.beginTransaction();
     //采用load查询不存在的数据,hibernate会抛出object not found exception
     //手动构造的Detached对象.
     Useruser =newUser();
     user.setId("402881e5441bfb0601441bfb075b0002");
     user.setName("周六");
     session.update(user);
     //提交事务.把内存的改变提交到数据库上.
     session.getTransaction().commit();
    }catch(Exception e){
     e.printStackTrace();
     session.getTransaction().rollback();
    }finally{
     HibernateUtils.closeSession(session);
    }
   }

加载对象,调用session的update()方法,让对象处于持久化状态的时候进行更新操作,代码如下所示。

 //测试方法以test开头.测试update方法.返回存在的加载的.
   publicvoid testUpdate2()
   {
    Sessionsession =null;
    try
    {
     session= HibernateUtils.getSession();
     //开启事务.
     session.beginTransaction();
     //采用load查询不存在的数据,hibernate会抛出object not found exception
     //先把要更新的查出来.
     //建议采用此种方式,先加载再更新的方式.
     Useruser = (User)session.load(User.class,"402881e5441bfb0601441bfb075b0002");
     //查出来的话就直接放入了.处于持久化状态.
     user.setName("周日");
     //显示的调用,因为为持久化状态也可以不显示调用.
     session.update(user);
     //提交事务.把内存的改变提交到数据库上.
     session.getTransaction().commit();
    }catch(Exceptione){
     e.printStackTrace();
     session.getTransaction().rollback();
    }finally{
     HibernateUtils.closeSession(session);
    }
   }

总结

以上所述是小编给大家介绍的hibernate增删改查操作代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# hibernate增删改查  # Hibernate中Session增删改查操作代码详解  # hibernate通过session实现增删改查操作实例解析  # Hibernate对数据库删除、查找、更新操作实例代码  # 全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制  # hibernate批量操作实例详解  # Java的Hibernate框架数据库操作中锁的使用和查询类型  # Java的Hibernate框架中用于操作数据库的HQL语句讲解  # Hibernate单表操作实例解析  # 加载  # 所示  # 不存在  # 抛出  # 是一个  # 迭代  # 几个  # 分页  # 当我们  # 此种  # 小编  # 的是  # 而不是  # 法会  # 第一个  # 在此  # 一是  # 才会  # 两种  # 对其 


相关文章: 网站制作大概要多少钱一个,做一个平台网站大概多少钱?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  如何在自有机房高效搭建专业网站?  建站之星3.0如何解决常见操作问题?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  英语简历制作免费网站推荐,如何将简历翻译成英文?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何配置FTP站点权限与安全设置?  实例解析angularjs的filter过滤器  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何在七牛云存储上搭建网站并设置自定义域名?  学校为何禁止电信移动建设网站?  如何快速打造个性化非模板自助建站?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  如何配置WinSCP新建站点的密钥验证步骤?  如何在建站之星绑定自定义域名?  网站微信制作软件,如何制作微信链接?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  制作农业网站的软件,比较好的农业网站推荐一下?  如何快速搭建高效WAP手机网站?  如何快速登录WAP自助建站平台?  如何挑选优质建站一级代理提升网站排名?  如何高效生成建站之星成品网站源码?  C++如何使用std::optional?(处理可选值)  实惠建站价格推荐:2025年高性价比自助建站套餐解析  建站ABC备案流程中有哪些关键注意事项?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  如何制作一个表白网站视频,关于勇敢表白的小标题?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  香港服务器如何优化才能显著提升网站加载速度?  如何用PHP快速搭建高效网站?分步指南  如何在企业微信快速生成手机电脑官网?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  建站之星安装需要哪些步骤及注意事项?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  官网网站制作腾讯审核要多久,联想路由器newifi官网  中山网站制作网页,中山新生登记系统登记流程?  建站之星后台密码遗忘或太弱?如何重置与强化?  建站之星如何实现五合一智能建站与营销推广?  Python如何创建带属性的XML节点  如何在Ubuntu系统下快速搭建WordPress个人网站?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  如何访问已购建站主机并解决登录问题?  建站之星代理如何获取技术支持? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。