我有一个包含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)
答案 0 :(得分:-1)
尝试在db上关闭自动提交 SET autocommit = 0;