gpt4 book ai didi

java - HikariCP 自动提交用法与常规 java 连接自动提交用法相同吗?

转载 作者:行者123 更新时间:2023-11-30 07:48:22 25 4
gpt4 key购买 nike

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

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

我的问题:HikariCP 是否仍然使用相同的程序来满足我的需求?意思是,将自动提交设置为 false(我阅读了手册,您的配置有自动提交参数),然后我们只需手动回滚或提交事务然后返回到池?或者是否有一些自动化完成,我们可以抛出异常,并且如果我没有将配置参数设置为 Autocommit = false,HikariCP 将在出现错误时自动调用回滚或在连接返回时调用提交?

感谢您提供任何信息。伦德拉

最佳答案

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

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

关于java - HikariCP 自动提交用法与常规 java 连接自动提交用法相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33607167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com