怎么直接使用Hibernate
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要为大家展示了"怎么直接使用Hibernate",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"怎么直接使用Hibernate"这篇文章吧。在直接使
千家信息网最后更新 2025年02月23日怎么直接使用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安全错误
数据库的锁怎样保障安全
淘宝怎么做服务器
黑客需不需要计算机网络技术
天旧X服务器
未发生网络安全责任事件
聚类数据库技术
网络安全国际认证证书
空间数据库中的函数依赖
长沙软件开发带薪培训校招
中通软件开发级别有多少级别
数据库外键什么时候为空
数据库表 使用中
TCGA数据库挖掘神器
穿越火线选择服务器人数
肥东企业网络技术咨询有哪些
网络技术系统评估
信息网络安全论文简单
北京潮流软件开发
深圳立拓互联网科技有限公司
通信网络技术专业就业
网络工程 网络安全技术
黑客需不需要计算机网络技术
中国网络安全技术产业增速
数据库中表格怎么去掉
网络技术专业宣传标语
计算机网络技术专业培养目标
网络技术专接本考什么
梦境之树服务器
显示服务器的服图片
工作期间可以带vfp数据库吗
静安区企业软件开发报价业务流程