假设我有以下 Java 代码片段(其中类似的内容嵌入到遗留应用程序中)
...
try {
con.setAutoCommit(false);
updateSales = con.prepareStatement(updateString);
updateTotal = con.prepareStatement(updateStatement);
updateSales.setInt(1, e.getValue().intValue());
updateSales.setString(2, e.getKey());
updateSales.executeUpdate();
updateTotal.setInt(1, e.getValue().intValue());
updateTotal.setString(2, e.getKey());
updateTotal.executeUpdate();
con.commit();
} catch (SQLException e ) {
...
假设这是连接到 SQL Server 2005 数据库(使用 ms 2005 驱动程序) - con.commit 是否有任何原因不会提交事务?
最佳答案
您没有向我们展示 SQL 语句,所以很难说。也许您的情况很奇怪,因此数据库无法更新/插入/删除任何记录?
检查
executeUpade()
的结果。如果任何记录发生更改,它应该为您提供 1 个或多个数据库上可能有 TRIGGER 阻止此类操作。是否可以使用具有硬编码值的
updateString
从某些 SQL 编辑器更改数据库?
关于Java 事务 - 在 conn 上提交不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11987378/