Spring事务之七(事务自动提交)
来源:互联网 发布:西宁数据工程师招聘 编辑:程序博客网 时间:2024/06/06 01:51
更多文章:http://zhuqiuhui.space/
一、MySQL数据库事务自动提交
对于mysql数据库,默认情况下,数据库处于自动提交模式。每一条语句处于一个单独的事务中,在这条语句执行完毕时,如果执行成功则隐式的提交事务,如果执行失败则隐式的回滚事务。对于正常的事务管理,是一组相关的操作处于一个事务之中,因此必须关闭数据库的自动提交模式,下面是查看方式:
查看是否自动提交命令(ON表示开启自动提交,值为1,OFF表示关闭自动提交,值为0):
关闭自动提交后,则用户将一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务。
二、Spring连接
如果结合Spring来获取数据库连接,就不用担心,spring会将底层连接的自动提交特性设置为false,先看下Spring事务配置:
<!-- 配置事务 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /></bean><tx:annotation-driven transaction-manager="transactionManager"/>
上面配置中,重要的是类:org.springframework.jdbc.datasource.DataSourceTransactionManager,看其对自动提交的处理:
protected void doBegin(Object transaction, TransactionDefinition definition) { //...... if(con.getAutoCommit()) { txObject.setMustRestoreAutoCommit(true); if(this.logger.isDebugEnabled()) { this.logger.debug("Switching JDBC Connection [" + con + "] to manual commit"); } con.setAutoCommit(false); } //...... }
三、建议:当一个连接关闭时,如果有未提交的事务则回滚任何未提交的事务(C3P0默认的策略,C3P0的autoCommitOnClose属性默认是false)
0 0
- Spring事务之七(事务自动提交)
- Spring事务 之 事务自动提交
- 自动提交事务
- 自动提交 与 事务
- Spring事务之事务回滚、清理及提交
- Spring与Hibernate的整合,不配置事务管理器,事务会自动提交(Hibernate默认手动提交)
- spring事务提交问题
- Spring 手动提交事务
- 脱离 Spring 实现复杂嵌套事务,之七(NEVER - 排除事务)
- pg(hgdb)默认事务自动提交
- Spring Boot(七)增加事务@Transactional
- 坑爹的Spring数据源——自动提交事务
- MySQL事务autocommit自动提交
- MySQL事务autocommit自动提交
- connection.autocommit自动提交事务
- 关于jdbc事务自动提交
- MySQL事务autocommit自动提交
- SSH 配置自动提交事务
- tcp三次握手与四次挥手
- ISE仿真器报错:ERROR:Simulator:861 – Failed to link the design 解决办法
- Java打印二维数组
- Spring事务之六(JUnit单测事务回滚)
- c++第四次作业
- Spring事务之七(事务自动提交)
- easyinstall、pip、numpy、scipy、pandas安装
- C++ list类存储结构体
- acm_线性表操作
- javascript 垃圾回收机制 小结
- Masonry比例用法
- git小技巧--如何从其他分支merge个别文件或文件夹
- 资源访问工具类
- windows git 安装