Connection接口中定义了三个对应的方法
开启事务: setAutoCommit(boolean autoCommit): true为自动提交事务;false为手动提交事务,即为开启事务
提交事务: commit()
回滚事务: rollback()
使用场景:
在开启事务语句与提交事务语句的代码块中,可能是由于数据处理的异常使得sql语句比如(update,insert ,delete语句)对数据库结构产生影响,而我们期望这些sql语句要么同时成功,要么同时失败。则使用try-catch捕获异常,并在catch语句中调用rollback(),事务回滚到开启事务时的状态,使得该代码块中所有语句都不对数据库产生任何影响。
注意:commit()在mysql中一般是自动提交,若是注释了开启事务和提交事务语句,则异常之前的sql语句都会正常执行(即异常之前的sql语句成功,异常之后的失败),
try{
con.setAutoCommit(false);// con为connection对象,开启手动提交事务
//在开启事务与提交事务的代码块中,有对数据库结构产生影响的sql语句。
con.commit();
}catch(Exception e){
con.rollback();
e.printStackTrace();
}