java - 如果 postgres 中的 autocommit 为 false,事务将自动回滚

标签 java postgresql transactions

我是模型层的新手,只需要澄清一下在我们的代码中,如果自动提交是假的,比如

Connection conn = DBUtil.getConnection(userDb);
conn.setAutoCommit(false);

我们得到一个与 postgres 无关的异常,比如

if (response.getValue() != null) {   
    conn.commit();
}

当response对象为任意值时,postgres中事务是否自动回滚

谢谢

最佳答案

这取决于。如果连接关闭,则事务应由数据库回滚。如果您使用的是连接池,则当连接返回时,事务应由池回滚。

但这可能取决于驱动程序以及连接池,因此您应该明确地执行提交和回滚,而不是依赖驱动程序或连接池。

关于java - 如果 postgres 中的 autocommit 为 false,事务将自动回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27916458/

相关文章:

Java 字符串 : private static vs local variable performance

java - 在命令行中将环境变量传递给 java 类

JAVA 编程复选框到 MySQL

python - 用户 "odoo"的对等身份验证失败

java - 连接到远程 postgresql 数据库时连接超时

java - 如何在Java中访问资源进行读写

postgresql - jdbc-HikariCP : Seeing low insert thoughput while DB/App cpu % is still low

Oracle-事务,回滚段和undo_retention参数如何工作?

c# - TransactionScope 破坏 SqlConnection 池?

java - 如何从在 Spring 上下文中配置的 EntityManager 获取连接?