【问题标题】:Java transaction - commit on conn doesn'tJava 事务 - 在 conn 上提交不会
【发布时间】:2012-08-16 12:42:55
【问题描述】:

假设我有以下 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 是否有任何理由不会提交事务?

【问题讨论】:

  • 你是如何确定它一开始没有提交的?
  • 无异常 - 数据库中未注册任何更改。

标签: java sql-server-2005 jdbc transactions commit


【解决方案1】:
  1. 您没有向我们展示 SQL 语句,所以很难说。也许您的情况很奇怪,因此数据库无法更新/插入/删除任何记录?

  2. executeUpade() 的检查结果。如果有任何记录被更改,它应该给你 1 个或更多

  3. 数据库上可能存在阻止此类操作的触发器。是否可以使用带有硬编码值的 updateString 从某些 SQL 编辑器更改数据库?

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 2016-02-13
    • 2018-01-13
    • 2015-06-17
    • 2015-08-04
    相关资源
    最近更新 更多