JDBC事务rollback()仍在更新表

时间:2017-06-08 21:50:25

标签: java mysql jdbc

我有一个包含id列,出价列和费用列的表格。我在jdbc中使用事务。我将auto commit设置为false,执行一些查询来更新该表,然后调用rollback方法,该方法应该撤消在事务中所做的更改并将表还原回其先前的状态。但是,该表仍在更新中。

这是我的代码:

public class JdbcTransactions {
public static void main(String[] args) {
    Connection myConn = null;
    Statement myStmt = null;

    try {
        myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/tutorialdatabase", "student", "student");

        myConn.setAutoCommit(false);

        myStmt = myConn.createStatement();
        myStmt.executeUpdate("UPDATE items SET bids = 0 WHERE id <= 5");
        myStmt.executeUpdate("UPDATE items SET cost = cost + 100 WHERE id <= 5");

        myConn.rollback();


    }catch(SQLException e) {
        System.err.println("Something went wrong: ");
        e.printStackTrace();

    } finally {
        try {
            myStmt.close();
            myConn.close();
        }catch(SQLException e) {

        }
    }
}

}

我想更新tutorialdatabase中的items表,将出价设置为0,前5行的成本增加100(所有行的ID为1 - 5)

1 个答案:

答案 0 :(得分:-1)

尝试在db上关闭自动提交 SET autocommit = 0;