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)

相关推荐

  • 如何解决异步log4j2中的位置信息打印问题

    技术异步log4j2中的location信息打印问题怎么解决异步log4j2中的location信息打印问题怎么解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习

    攻略 2021年12月23日
  • 虚拟环境中如何查opencv的版本号(opencv怎么添加依赖项)

    技术如何进行opencv vector 测试这篇文章给大家介绍如何进行opencv vector 测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。#include
    #incl

    攻略 2021年12月15日
  • 帮助你处理Web页面层布局的jQuery插件有哪些

    技术帮助你处理Web页面层布局的jQuery插件有哪些本篇文章给大家分享的是有关帮助你处理Web页面层布局的jQuery插件有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟

    攻略 2021年11月16日
  • 树莓派如何实现无显示器安装系统

    技术树莓派如何实现无显示器安装系统这篇文章将为大家详细讲解有关树莓派如何实现无显示器安装系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.选择、安装操作系统 LZ选择的是官方提供的

    攻略 2021年11月20日
  • 如何深入理解Java虚拟机JVM类加载初始化

    技术如何深入理解Java虚拟机JVM类加载初始化如何深入理解Java虚拟机JVM类加载初始化,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1

    2021年11月21日
  • Java设计模式中单件模式有什么用

    技术Java设计模式中单件模式有什么用小编给大家分享一下Java设计模式中单件模式有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!定义单件模式确保一个类只有一个实例,并提供一个全局访问点Java单

    攻略 2021年11月14日