//conn为自动提交
try{
conn.setAutoCommit(false);//设为不自动提交
pstmt=conn.prepareStatement(sql);
conn.commit();
return true;
}catch(Exception e){
//回滚
}请问conn.setAutoCommit(false)算不算在事务里面?
在catch里面会不会回滚为自动提交?

解决方案 »

  1.   

    conn.setAutoCommit(false);
    不算在事物里面
    事物控制的是对数据库的操作
    所以回滚不会回滚为自动提交
    只是你的这里设置对其他地方无效
    其他地方还是使用默认方式
      

  2.   

    conn.setAutoCommit(false);//只是一个开发,将数据库操作设置为手动提交。
    try{
    操作1,
    操作2

    conn.commit();
    }
    catch(){
    //上面操作中失败,这都进行回滚。但是提交方式任然是手动。
    }
    finally{
    关闭连接,这可以将手动提交恢复到自动提交。
    conn.setAutoCommit(true);
    }