(1)开启事务setautocommit
调用该方法设置参数为false,即开启事务。
在执行sql之前开启事务。
(2)提交事务:commit()
当所有sql都执行完提交事务。
(3)回滚事务:rollback()
在catch中回滚事务。
2、实例
public static void main(string[] args) { connection conn = null; preparedstatement pstmt1 = null; preparedstatement pstmt2 = null; try { //1.获取连接 conn = jdbcutils.getconnection(); //开启事务 conn.setautocommit(false); //2.定义sql //2.1 张三 - 500 string sql1 = update account set balance = balance - ? where id = ?; //2.2 李四 + 500 string sql2 = update account set balance = balance + ? where id = ?; //3.获取执行sql对象 pstmt1 = conn.preparestatement(sql1); pstmt2 = conn.preparestatement(sql2); //4. 设置参数 pstmt1.setdouble(1,500); pstmt1.setint(2,1); pstmt2.setdouble(1,500); pstmt2.setint(2,2); //5.执行sql pstmt1.executeupdate(); // 手动制造异常 int i = 3/0; pstmt2.executeupdate(); //提交事务 conn.commit(); } catch (exception e) { //事务回滚 try { if(conn != null) { conn.rollback(); } } catch (sqlexception e1) { e1.printstacktrace(); } e.printstacktrace(); }finally { //关闭资源 jdbcutils.close(pstmt1,conn); jdbcutils.close(pstmt2,null); }
以上就是java中如何使用connection管理事务的详细内容。
