在MySQL JDBC中,自动提交是否会影响所有连接?
-
26-10-2019 - |
题
当使用连接池时,设置连接的自动企业= false仅影响此连接吗?
如果我在不设置AutoCommit = true的情况下关闭此连接并获得新连接,将设置此连接的策略= AutoCommit = true吗?
解决方案
答案是:“取决于所使用的连接池”。
但是,如果我是一个连接池,我将根据初始配置恢复自动加入状态。我认为其他连接池也会做同样的事情。
其他提示
测试方案:
- 设置AutoCommit = false
- 使用交易
- 关闭连接而不将其设置回AutoCommit = true
结果:何时 这个 重复使用特定连接, 它仍然具有autocommit = false (其他新连接具有默认的AutoCommit = true)。所以,一旦我杀了 这个 在数据库侧的连接并再次调用我的代码,只有这样,池才使我与默认的AutoCommit = true进行了新的连接。
结论:仅影响 这个 连接,但请确保将其设置回AutoCommit = True之前,请先完成! (这是基于实际测试,而不是假设)
注意:这里也注意到这个Beahvior: http://www.coderanch.com/t/583969/jdbc/databases/tomcat-connection-pool-auto-commit
我将JDBC与Tomcat7,Java 1.7,MySQL5.6,Connector/j 5.1一起使用。
不隶属于 StackOverflow