当前位置: 首页 > 知识库问答 >
问题:

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

文德曜
2023-03-14

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

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

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

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

共有1个答案

姬昀
2023-03-14

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

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

 类似资料:
  • 当我在Hikari池中使用连接时,我一直看到此日志。 那是什么意思?这是我应该担心/解决的事情,还是正常的?我试图理解那里到底发生了什么。

  • 我正在使用java和mysql,但我无法修复错误。当我将new Farm插入表时,我正面临这些错误...... Java语言sql。SQLException:当autocommit=true时无法调用commit 错误如下 Java语言sql。SQLException:当autocommit=true时无法调用commit _commandsSQLE_loopSQLException(SQLEpa

  • 本文向大家介绍php自动提交表单的方法(基于fsockopen与curl),包括了php自动提交表单的方法(基于fsockopen与curl)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php基于fsockopen与curl实现自动提交表单的方法。分享给大家供大家参考,具体如下: fsockopen和curl都可以做php自动提交表单 1. fsockopen方法: php代码: 2.

  • 问题内容: 我目前正在阅读Hibernate文档,并且遇到以下引号: 如果Session引发异常(包括任何SQLException),请立即回滚数据库事务,调用Session.close()并丢弃Session实例。某些会话方法不会使会话保持一致状态。Hibernate抛出的异常不能被视为可恢复的。通过在finally块中调用close()来确保关闭会话。 就我而言,这一切都说得通,但这确实让我想

  • 问题内容: 如何设置初始化我的Flask应用程序以将Flask-SQLAlchemy设置为自动提交模式,除非我明确地不使用事务? 会话“ 开始通信后即开始数据库事务 ”。这是否会影响Postgres的难度比MySQL? 通过Instagram, 自动提交模式;在这种模式下,Psycopg2不会对任何查询发出BEGIN / COMMIT;相反,每个查询都在其自己的单语句事务中运行。这对于不需要事务语

  • 本文向大家介绍HTML页面禁用Enter键自动提交表单的方法,包括了HTML页面禁用Enter键自动提交表单的方法的使用技巧和注意事项,需要的朋友参考一下 在HTML页里面由于使用了form,常常需要禁用enter提交表单。因为内容页或者母版页自身有如果有type="submit"的button,当textbox聚焦时,按下enter都会触发表单的默认提交(不论是IE还是firefox),于是需要