首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HikariCP自动提交用法是否与常规java连接自动提交用法相同?

HikariCP自动提交用法是否与常规java连接自动提交用法相同?
EN

Stack Overflow用户
提问于 2015-11-09 18:31:33
回答 1查看 6.8K关注 0票数 2

我最近使用了HikariCP。在我使用我自己的简单ConnectionPool来满足我们的需求之前。在我们的软件中,有时我们需要执行多个数据库插入,其中每个插入都依赖于一些验证。或多或少像这个网站上的示例:http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html#commit_transactions

按照我以前的方式,当我使用自己的conn池时,在将connection对象提供给请求对象之前,我总是将其设置为setAutoCommit(false),以便数据库管理器可以在出现错误时手动回滚数据。与示例中一样,如果try捕获到任何异常,则它将调用rollback函数。当我返回连接时,我在连接返回中调用connection.commit(),并在连接池管理器中将自动提交设置回true。

我的问题是: HikariCP是否仍然使用相同的过程来满足我的需求?也就是说,将自动提交设置为false (我读过手册,您的配置有自动提交参数),然后我们就手动回滚或提交事务,然后返回池?或者,如果我没有将配置参数设置为Autocommit = false,那么HikariCP会在出错时自动调用回滚,或者在连接返回时调用commit吗?

感谢您提供的任何信息。Rendra

EN

回答 1

Stack Overflow用户

发布于 2015-11-10 22:57:09

HikariCP自动提交行为与不使用池的行为相同。如果为autoCommit=false,则您负责在try-finally中提交/回滚。所以,是的,您只需提交/回滚,然后将连接返回到池。

事实是,如果为autoCommit=false,并且您在未提交的情况下运行查询,那么HikariCP将在返回到池时自动回滚。但是,这是为了安全起见,我不鼓励您基于此行为进行编码。这样做会降低代码的可移植性,如果您选择交换池的话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33607167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档