Java的Connection中事务处理的一点儿例外

Java中java.sql.Connection
可以设置

conn.setAutoCommit(false);        
conn.setTransactionIsolation(xxx);//xxx为4种参数


。。。。。

conn.commit();

大括号中间,可以用conn创建的statement来执行executeupdate,这种执行算“虚拟提交”,如果一旦conn.rollback()回滚,那么提交就失败,直到commit()才算作真正写入数据库。

但是,注意!由statement创建的ResultSet如果为可更新类型的话,一旦执行rs.updateRow();那么就直接提交,不管是否开启的事务功能。。。这个不算意外,但是还应当避免。

因为其实说话回来,用rs的更新必须有.updateRow();执行才算提交,也相当了一个“事务功能”,何乐不为~?

Leave a Reply

Your email address will not be published.