jfinal 事务回滚不了的问题

jfinal 事务回滚不了的问题

白龙吟 发布于 2021-11-25 字数 1056 浏览 766 回复 12

我以前用的jfinal1.1版本,如在控制器中用下面这样的写法

Connection conn = null;

conn = DbKit.getDataSource().getConnection();
            DbKit.setThreadLocalConnection(conn);
conn.setAutoCommit(false);//关键就是把自动提交变成false

这段代码在jfinal1.1下是可以实现回滚的,但是把程序升级到jfnal1.8后,上面的写法报错,于是没办法,我在jfinal1.8中采用注解TX.class来实现事务回滚,但是,达不到我要的效果,即使程序异常后,跳进TX.class中的conn.rollback()后,发现数据依然被删除或修改或增加,总之,没有回滚。

查了文档,说要让mysql的类型改为InnoDB,我查了下,数据库也改成这样了,


 

还有,我的数据库连接方式采用druid连接池来实现的。

请问下,你们在jfinal1.8下,如何实现事务回滚的呀,很急呀。

说明数据库肯定是InnoDB

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

飘然心甜 2021-12-01 12 楼

回复
我就粗看了一下,当时没发现换的必要。看来要换了。

无边思念无边月 2021-12-01 11 楼

回复
新版本的很多好处,你是不了解的,换上后慢慢就知道了

断爱 2021-12-01 10 楼

回复
你好 ,请问下多数据时事物回滚有上面特殊设置?

温柔少女心 2021-12-01 9 楼

回复
老版本的 batch 方法中已经有提交操作,所以不受外部事务控制,jfinal 2.0 改进了这里,所以值得换新版本

断爱 2021-12-01 8 楼

除了数据库引擎以外,事务是否正确回滚还代码有关,不同的代码形式需要的事务级别有所不同,简单办法是先提升事务级别, arp.setTrnasactionLevel(4),事务级别所发挥的作用可以查阅相关文档

顾忌 2021-12-01 7 楼

建议重新安装一个数据库,重新导入表结构及数据,看是否能正常,如果排除,再换成C3P0数据库,一个个点排除吧。

网名女生简单气质 2021-12-01 6 楼

conn.setAutoCommit(false);

还要看mysql版本.

陌上芳菲 2021-12-01 5 楼

异常要抛出来 才会回滚

本宫微胖 2021-12-01 4 楼

引用来自“iehyou”的评论

应该数据库还不是
InnoDB类型了  查下表的类型。

酒几许 2021-12-01 3 楼

引用来自“iehyou”的评论

应该数据库还不是
InnoDB类型了  查下表的类型。

沦落红尘 2021-12-01 2 楼

应该数据库还不是
InnoDB类型了  查下表的类型。

海之角 2021-11-30 1 楼

conn.setAutoCommit(false);这个是必须的。