【问题标题】:JDBC Savepoints doesn't rollbackJDBC 保存点不回滚
【发布时间】:2012-12-06 01:27:57
【问题描述】:

我正在使用 JDBC,但在回滚和保存点方面遇到了一些问题。 我不明白为什么这段代码实际上并没有回滚到保存点并且插入的记录仍然存在。

try  {
    conn.setAutoCommit(false);
    stmt = conn.createStatement();

    sp = conn.setSavepoint();
    stmt.executeUpdate("INSERT INTO test(id) VALUES(" + args[0] + ")");

    if(true)  {
        conn.rollback(sp);
        System.out.println("rollback");
    }
} catch (SQLException ex)  {
    // handle any errors
    System.out.println("SQLException: " + ex.getMessage());
    System.out.println("SQLState: " + ex.getSQLState());
    System.out.println("VendorError: " + ex.getErrorCode());

    System.out.println("rollback");
    conn.rollback(sp);
} finally  {
    conn.commit();
}

提前致谢。

【问题讨论】:

  • 你用的是什么数据库?

标签: java jdbc rollback


【解决方案1】:

因为 Savepoint 只是 DBMS 的功能。我认为这可能是您的数据库引擎的问题。

您可以查看this问题。

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 2023-03-19
    • 2014-10-19
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    相关资源
    最近更新 更多