栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 大数据 > 大数据系统

java事务开启,获取数据库连接不一致,导致事务回滚失败

大数据系统 更新时间:发布时间: 百科书网 趣学号

开始以为数据库引擎出问题,查看数据库引擎没什么问题

 查看哪些数据库引擎支持事务:

SHOW ENGINES;

 看到InnoDB支持事务

 设置关闭数据库的自动事务提交:

SET autocommit =0;
SHOW VARIABLES LIKE 'autocommit';

开启事务自动提交:

SET autocommit =1;
SHOW VARIABLES LIKE 'autocommit';

 转账原始数据:

 

转账期间获取的是同一个数据库连接,导致事务回滚失败:

Dao方法获取的是新的数据库连接:

con = DbUtils.getConnection();

 事务期间不是用同一个数据库连接:

 导致事务回滚失败:

 

数据库用同一个连接:

con = DbUtils.getCourrentConnection();

 

 结果无误啦ヾ(≧▽≦*)o ヾ(≧▽≦*)o

 

无网络异常转账:

 

 转账成功:

总结: 用到事务的时候,一定要保证事务在同一个数据库连接下操作,否则得到不是正确结果,排查也要花好多时间!!!

 

 

 

 

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/279997.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号