java - DataSource连接池的autocommit是否应该被设置为false
黄舟
黄舟 2017-04-17 16:34:57
[Java讨论组]
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
PHP中文网

一篇文章,有关autocommit给我带来的问题

上面那篇文章是我在实际工作中遇到的有关数据库连接的autocommit的问题,其实如果你的业务逻辑设计就是运行自动提交,那么这个设置完全是ok的,但是如果不是就别这么设置。
你每次在请求结束的时候设置autocommit很没有必要,操作变得复杂,如果忘了怎么办呢,是吧。
最好是autocommit=false,然后如果业务根据实际需要设置autocommit即可,每次结束也不需要去重置这个状态。

高洛峰

如果你把数据库配置为autocommit=false,每次更新、插入、删除等操作都必须conn.commit(),所以数据库不能设置为autocommit=false。

既然数据库设置为了自动提交,所以当需要开启事务的时候,必须设置为autocommit=false。

现在回答你的问题:

1)来回设置autocommit是否有必要? 答:有,假如你提交完当前事务后,不设置为autocommit=false,在未关闭此连接之前,再次使用该连接进行更新、插入、删除等操作,每次操作需要conn.commit(),因为不会自动提交了。
连接池的连接不会真正关闭,应该更容易引发,不自动提交问题。

2)后面的几个是否问题,我觉得没必要回答了。
以上是我在项目中遇到的此问题,当时没找到答案。这是我的理解(可能不对啊,希望不误人子弟),供大家参考。项目中用spring管理的事务,不知道spring怎么处理的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号