Hibernate事务的示例分析

技术Hibernate事务的示例分析小编给大家分享一下Hibernate事务的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hiber

边肖将和大家分享一个Hibernate事务的分析示例。相信大部分人都不太了解,所以分享这篇文章给大家参考。希望你看完这篇文章能有很多收获。我们一起来看看吧!

Hibernate是JDBC的轻量级包,不具备事务管理的能力。在事务管理层,Hibernate将其委托给底层的JDBC或JTA,实现事务管理和调度功能。

Hibernate事务处理机制基于JDBC事务。我们还可以通过配置文件设置使用JTA作为事务管理实现:

hibernate-configuration session-factory……. property name=' hibernate . transaction . factory _ class ' net . SF . hibernate . transaction . jtatransactionfactory!-net . SF . Hibernate . transaction . jdbctransactionfactory-/property./session-factory/hibernate-configuration基于JDBC的事务管理将事务管理委托给JDBC处理无疑是最简单的方式,hibernate事务对JDBC事务的封装也极其简单。

让我们看看下面的代码:

session=SessionFactory . OpenSession();transactiontx=session . BeginIntrasaction();……tx.commit();从JDBC级别来看,上述代码实际上对应于:

connectiondbconn=GetConnection();dbconn . setautocommit(false);……dbconn.commit();就这么简单。Hibernate没有做更多的事情(事实上,它不能做更多的事情),只是封装了这样的JDBC代码。

这里需要注意的是,在sessionFactory.openSession()中,hibernate将初始化数据库连接,同时将其AutoCommit设置为off (false)。然后,在Session.beginTransaction方法中,Hibernate将再次确认Connection的AutoCommit属性设置为off状态(以防止用户代码修改Connection。会话的自动提交属性)。

也就是说,我们一开始从SessionFactory获取的会话的自动提交属性已经关闭(AutoCommit=false),下面的代码对数据库没有影响:

session=SessionFactory . OpenSession();session.save(用户);session . close();实际上,这相当于将JDBC连接的自动提交属性设置为false。执行几个JDBC操作后,连接会关闭,而不调用提交操作。如果代码真的在数据库上工作,我们必须显式调用Transaction指令:

session=SessionFactory . OpenSession();transactiontx=session . BeginIntrasaction();session.save(用户);tx.commit();session . close();以上就是文章“Hibernate事务的实例分析”的全部内容。感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/136810.html

(0)

相关推荐

  • 会计科目分类,关于会计科目的分类有哪些

    技术会计科目分类,关于会计科目的分类有哪些会计对象会计科目分类、会计要素和会计科目 徐经长 张广龙/文
    会计对象、会计要素和会计科目的关系,是中级会计实务中的一个重要的理论问题。众所周知,从事会计实务的同志几乎每天都要

    生活 2021年10月20日
  • rtthread的使用分析

    技术rtthread的使用分析这篇文章将为大家详细讲解有关rtthread的使用分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。RT-Thread 中,实际上线程并不存

    攻略 2021年11月10日
  • mybatis-缓存

    技术mybatis-缓存 mybatis-缓存目录1为什么用缓存2mybatis缓存2.1 一级缓存2.2 二级缓存2.3 Cache3 一级缓存一级缓存失效的四种情况不同的SqlSession对应不同

    礼包 2021年11月20日
  • 373. 查找和最小的K对数字

    技术373. 查找和最小的K对数字 373. 查找和最小的K对数字给定两个以升序排列的整数数组 nums1 和 nums2,以及一个整数 k。
    定义一对值(u,v),其中第一个元素来自nums1,第二个

    礼包 2021年12月16日
  • 如何用Python爬取高颜值美女

    技术如何用Python爬取高颜值美女如何用Python爬取高颜值美女,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1 数据源知乎话题『美女』下所有问题中回答

    攻略 2021年10月26日
  • linux mac地址怎么查(macoslinux系统命令区别)

    技术在Linux以及Mac OS X如何启用F#这篇文章主要介绍了在Linux以及Mac OS X如何启用F#,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下

    攻略 2021年12月16日