怎么直接使用Hibernate
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要为大家展示了"怎么直接使用Hibernate",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"怎么直接使用Hibernate"这篇文章吧。在直接使
千家信息网最后更新 2024年09月22日怎么直接使用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安全错误
数据库的锁怎样保障安全
各种软件数据库
如何使用股票市场数据库
服务器接口并发限制
捏脸3d软件开发需求
软件开发服务与销售软件
移动互联网未来科技
软件开发行业增值税即征即退政策
杭州管理软件开发哪个品牌好
代码 管理 服务器
中国互联网沙龙网络安全专场
服务器后台怎么维护
四川智慧管理平台软件开发
红力互联网络技术
顺德区智匙网络技术有限公司
linux系统不用买数据库
sky服务器下载
java批量写入数据库
行业网络安全态势感知
青岛手机软件开发学校
服务器键盘灯不亮无法进入服务器
服务器卡死ping不通
长沙智能边缘计算服务器直销价格
小学生网络安全教育主题黑板报
方舟开启专用服务器
建房服务器
vs无法链接自带的数据库
用户信息安全管理软件开发
做服务器违法
软件开发绩效薪酬体系
万方数据库的论文怎么看不