java - 如何在 JDBC 中启动事务?

标签 java jdbc transactions

Connection.setTransactionIsolation(int)警告:

Note: If this method is called during a transaction, the result is implementation-defined.

这就引出了一个问题:如何在 JDBC 中开始一个事务?很清楚如何结束一个事务,但不知道如何开始。

如果 Connection 在事务内部开始,我们应该如何在事务外部调用 Connection.setTransactionIsolation(int) 以避免特定于实现的行为?

最佳答案

回答我自己的问题:

  • JDBC connections启用自动提交模式开始,其中每个 SQL 语句都隐式地与一个事务划界。
  • 希望每个事务执行多个语句的用户必须转 auto-commit off .
  • 更改自动提交模式会触发当前事务的提交(如果有的话)。
  • Connection.setTransactionIsolation()如果启用了自动提交,则可以随时调用。
  • 如果禁用自动提交,Connection.setTransactionIsolation()只能在事务之前或之后调用。在事务中间调用它会导致未定义的行为。

JDBC Tutorial通过甲骨文。

关于java - 如何在 JDBC 中启动事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4940648/

相关文章:

java - 如何让代码在递归后只运行一次?

mysql - Laravel 的回滚事务支持多态关系吗?

php - 我需要(我永远需要)锁定共享模式吗?在交易中进行更新?

java - 由于 'org.hibernate.HibernateException: No Session found for current thread' 异常,需要 @Transactional 注释

java - GlassFish 如何将客户端请求映射到 session

java - 如何在 Java 中创建文章旋转器正则表达式?

java - 无法使用 static var 在 java 线程中获得预期输出

java - Cachedrowset、JDBC和SQL Server 2008插入图像问题

Java - 使用 JDBC 连接到在线 MySQL 数据库时遇到问题

java - 如何正确清理 Java 中的 JDBC 资源?