JDBC事务提交机制以及解决方案
JDBC中的事务是自动提交的,什么是自动提交?
只要任意执行一条DML语句,则自动提交一次。这是JDBC默认的事务行为。但是实际业务当中,通常都是N条DML语句共同联合才能完成的,必须保证它们这些DML语句在同一事务中同时成功或者同时失败。
如何解决?
下面是java中提供的一个方法:
setAutoCommit(boolean flag);
用法如下图:
一.将自动提交改成手动提交
conn.setAutoCommit(false);
二.在程序结尾处 :如果没有异常,事务结束,手动提交数据
Conn.commit();
三.异常处理:若程序在执行过程中,出现异常,进行异常处理回滚事务
Conn.rollback();