Jfinal数据库事务处理,默认情况是自动提交的,可否提供一个默认是不提交的设置?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Jfinal数据库事务处理,默认情况是自动提交的,可否提供一个默认是不提交的设置?

2016-06-08 15:08:47 4354 1

Jfinal数据库事务处理,默认情况是自动提交的,可否提供一个默认是不提交的设置?

因为在团队合作过程中,有多条语句要一起执行时,很有可能忘记了事务注释(@Before(Tx.class)),导致隐藏的风险,如果设置为默认不提交,在开发时就可以发现,因为数据保存不进数据库。

取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 19:32:02

    自动提交是JDBC默认的,JFinal并未干预,如果想打破这个默认值只需要仿照Tx.java写一个AutoCommitOffInterceptor拦截器即可,代码如下:

    public class AutoCommitOffInterceptor implements Interceptor {
      public void intercept(ActionInvocation invocation) {
        Connection conn = null;
        try {
          conn = DbKit.getDataSource().getConnection();
          DbKit.setThreadLocalConnection(conn);
          conn.setAutoCommit(false);
          invocation.invoke();
        } catch (Exception e) {
          throw new ActiveRecordException(e);
        }
        finally {
          try {
            if (conn != null) {
              conn.close();
            }
          } catch (Exception e) {
            e.printStackTrace();
          }
          finally {
            DbKit.removeThreadLocalConnection();
          }
        }
      }
    0 0
相关问答

1

回答

如何设置外网连接数据库

2018-04-29 18:08:58 578浏览量 回答数 1

1

回答

一个请求超过了SLB的 连接请求超时时间 可以设置不重试吗

2018-10-25 17:07:19 2029浏览量 回答数 1

1

回答

JavaScript 怎么对数组进行 回调操作 的不影响原数组?

2016-04-09 13:12:39 1659浏览量 回答数 1

0

回答

主办单位名称与工商信息库登记信息不一致

2019-09-25 21:10:41 497浏览量 回答数 0

0

回答

数据磁盘回滚快照后自动重启导致多磁盘组LVM数据不一致

2014-03-03 10:12:01 6157浏览量 回答数 0

0

回答

用户指南-数据库连接-设置网络类型

2018-09-04 23:05:41 1027浏览量 回答数 0

3

回答

大哥们 求一个阿里云备案服务号

2016-10-10 15:05:09 3261浏览量 回答数 3

1

回答

阿里云MySQL数据库,设置的备份有效期只有7天,还能找到一个月内的备份数据么?

2020-09-29 10:29:57 1397浏览量 回答数 1

1

回答

请问,后端请求未结束,spring事物为什么会提交?是单个方法执行完,事物就会自动提交嘛?

2022-07-21 10:25:22 235浏览量 回答数 1

1

回答

请教一个数据库连接池的问题,目前已知是事务未设置超时,又有一块代码事务没有提交,一直把连接给耗尽了,

2022-08-02 17:07:17 279浏览量 回答数 1
文章
问答
问答排行榜
最热
最新
相关电子书
更多
面向失败设计
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载