怎么直接使用Hibernate
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要为大家展示了"怎么直接使用Hibernate",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"怎么直接使用Hibernate"这篇文章吧。在直接使
千家信息网最后更新 2025年01月18日怎么直接使用Hibernate
这篇文章主要为大家展示了"怎么直接使用Hibernate",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"怎么直接使用Hibernate"这篇文章吧。
在直接使用Hibernate时,要在事务结束的时候,写上一句:tx.commit(),这个commit()的源码为:
public void commit() throws HibernateException { if (!begun) { throw new TransactionException("Transaction not successfully started"); } log.debug("commit"); if (!transactionContext.isFlushModeNever() && callback) { transactionContext.managedFlush(); // if an exception occurs during // flush, user must call // rollback() } notifyLocalSynchsBeforeTransactionCompletion(); if (callback) { jdbcContext.beforeTransactionCompletion(this); } try { commitAndResetAutoCommit();//重点代码,它的作用是提交事务,并把connection的autocommit属性恢复为true log.debug("committed JDBC Connection"); committed = true; if (callback) { jdbcContext.afterTransactionCompletion(true, this); } notifyLocalSynchsAfterTransactionCompletion(Status.STATUS_COMMITTED); } catch (SQLException e) { log.error("JDBC commit failed", e); commitFailed = true; if (callback) { jdbcContext.afterTransactionCompletion(false, this); } notifyLocalSynchsAfterTransactionCompletion(Status.STATUS_UNKNOWN); throw new TransactionException("JDBC commit failed", e); } finally { closeIfRequired(); } }
上面代码中,commitAndResetAutoCommit()方法的源码如下:
private void commitAndResetAutoCommit() throws SQLException { try { jdbcContext.connection().commit(); //这段不用说也能理解了 } finally { toggleAutoCommit(); //这段的作用是恢复connection的autocommit属性为true } }
上述代码的toggleAutoCommit()源代码如下:
private void toggleAutoCommit() { try { if (toggleAutoCommit) { log.debug("re-enabling autocommit"); jdbcContext.connection().setAutoCommit(true); //这行代码的意义很明白了吧 } } catch (Exception sqle) { log.error("Could not toggle autocommit", sqle); } }
因此,如果你是直接使用Hibernate,并手动管理它的session,并手动开启事务关闭事务的话,完全可以保证你的事务(好像完全是废话)。
以上是"怎么直接使用Hibernate"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
事务
代码
内容
篇文章
作用
属性
手动
源码
学习
帮助
不用
不用说
废话
意义
方法
时候
易懂
更多
条理
源代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海服务器散热器
大型数据库技术论文
学校的教务系统服务器错误
流量转发服务器实现内网
厨师学计算机还是网络技术
ubuntu 登入数据库
面向对象数据库技术难易度
信息技术主要包括网络技术和
php上传多个文件写入数据库
阿图什手机软件开发
深圳市江泰网络技术有限公司
山阳软件开发技术
涉密软件开发资质名单
注册信息自动上传到数据库
软件开发核心技术指标情况
电商服务器用什么软件开发
数据库安全特性包括
网络安全事件应急处置情况汇报
精准筛选大批量数据库
香港恒生互联网科技指数
折戟壁垒tbc数据库
怎么登录网络安全平台
泾县现代软件开发服务有几种
网络安全进校园演出方案
浪潮m3服务器清除raid报错
上海服务器工控机厂家
泰安联想服务器代理价格
2019我国网络安全事故
网络安全 开发语言
吴翰清网络安全专家