Hibernate旅程(四)Hibernate对数据库删除、查找、更新操作

上篇,我们以向数据库添加操作来演示hibernate持久化对象的三种状态。本节继续hibernate对数据库的其他操作,删除、查询、修改。

Hibernate对数据删除操作

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

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

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

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

然后我们通过getload加载上来对应userid的对象,再调用sessiondelete方法删除该对象同时删除表中的一条记录,代码如下所示。

第一种删除方式。

  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);

                  

                  //提交事务

  • 28
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值