conn = DBConnect.getInstance().getConnection();
conn.setAutoCommit(false);
我通过上段得到的连接后,中间做了一系列SQL语句操作,然后在提交的时候,如果其中一条SQL出错,在我执行回滚的时候,是不是所有的更新操作都回滚了呢?

解决方案 »

  1.   

    如果要回滚一部分,可以设置事务记录点:
    Savepoint Connection::setSavepoint(String name)
    void Connection::rollback(Savepoint savepoint)
      

  2.   

    同一批次的操作为一个事务transaction。一个事务要么全部commit,要么全部rollback。
      

  3.   

    请问什么才能算是同一批次的操作呢?我好像不懂,因为如果我先通过CONN执行了一段SQL,然后将该CONN传递给一个方法并执行一段SQL如果方法中的CONN执行出错,则该方法前面的SQL语句没回滚哦