Java JDBC保存点没有';t回滚

Java JDBC保存点没有';t回滚,java,jdbc,rollback,Java,Jdbc,Rollback,我正在使用JDBC,但是我在回滚和保存点方面遇到了一些问题。 我不明白为什么这段代码实际上没有回滚到保存点,插入的记录仍然保留 try { conn.setAutoCommit(false); stmt = conn.createStatement(); sp = conn.setSavepoint(); stmt.executeUpdate("INSERT INTO test(id) VALUES(" + args[0] + ")"); if(tr

我正在使用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();
}

提前感谢。

因为保存点只是DBMS的功能。我想这可能是数据库引擎的问题


您可以检查问题。

您使用的是什么数据库?