执行以下导致异常“当AutoCommit模式设置为“true”时无法调用回滚操作。
java.sql.Connection connection = DriverManager.getConnection(connectionString);
com.ibatis.common.jdbc.ScriptRunner scriptRunner = new ScriptRunner(connection, true, true);
java.io.StringReader reader = new StringReader("PRINT 1;");
scriptRunner.runScript(reader);
// Cannot invoke a rollback operation when the AutoCommit mode is set to "true".
我的代码中没有引用回滚,而且我找不到任何选项来禁止它被强加给我。我查看了standalone.xml 并尝试设置jta=false。我在 sqlMapConfig\transactionManager 上找到并设置了 commitRequired=false,这是真的,但这并没有什么区别。
如果答案就在那里,我找不到它。我发现有人说“当然你不能回滚”,结果是禁用自动提交。我不是要求回滚,那么它来自哪里?根据https://www.programcreek.com/java-api-examples/index.php?api=com.ibatis.common.jdbc.ScriptRunner示例 3,我正在做的应该有效。
我想在自动提交模式(默认的 MS SQL Server 模式)下执行脚本,而不涉及或强制我执行任何事务,除了围绕 sql 脚本中每个单独语句的自动提交事务。我不希望 IMPLICIT_TRANSACTIONS ON,没有开始事务,没有提交,绝对没有回滚。
杨魅力
侃侃尔雅
相关分类