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
    评论
使用Hibernate的SessionFactory和Transaction来管理数据库操作,需要按照以下步骤: 1. 创建SessionFactory对象。SessionFactory是Hibernate的核心接口,用于创建Session对象,它是线程安全的,一般情况下只需要创建一个即可。 2. 创建Session对象。Session是Hibernate数据库进行交互的核心接口,它提供了各种方法来完成数据的增删改查等操作。每个Session都有自己的缓存区,它可以将对象持久化到数据库中,也可以从数据库中读取对象。 3. 开启Transaction事务。Transaction是Hibernate用于管理事务的接口,它可以将一系列的数据库操作作为一个整体来执行,保证数据的一致性和完整性。 4. 在Transaction中执行数据库操作。在Transaction中可以调用Session提供的各种方法来执行数据库操作,包括保存、更新删除和查询等操作。 5. 提交Transaction。如果所有的数据库操作都执行成功,则调用Transaction的commit()方法提交事务,使得数据持久化到数据库中。如果执行过程中出现异常,可以调用Transaction的rollback()方法回滚事务。 6. 关闭Session和SessionFactory。在所有的数据库操作都完成后,应该及时关闭Session和SessionFactory对象,释放资源。 使用SessionFactory和Transaction来管理数据库操作可以简化代码,提高数据操作的效率和安全性。同时,Hibernate还提供了很多其他的功能,例如映射对象关系、查询语言等,可以帮助开发者更方便地进行数据库操作

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值