数据回滚

4 篇文章 0 订阅
1 篇文章 0 订阅

conn.setAutoCommit(true)和(false)的区别

默认的话为自动提交,
每执行一个update ,delete或者insert的时候都会自动提交到数据库,无法回滚事务。
设置connection.setautocommit(false);只有程序调用connection.commit()的时候才会将先前执行的语句一起提交到数据库,这样就实现了数据库的事务。

true:sql命令的提交(commit)由驱动程序负责
false:sql命令的提交由应用程序负责,程序必须调用commit或者rollback方法
例:

public void editUser(String[]roleids)throws SQLException{
	   Connection conn=null;
	   try{
		   conn =DbUtil.getConn();
		   //1:开启手动提交事务
		   conn.setAutoCommit(false);
		   //2:更新用户信息到数据库
		   eidtToDB(conn);
		   //3:删除原有角色关联
		   unbindRole(conn);
		   //4:循环关联菜单信息
		   for(String roleid:roleids){
			   bindRole(conn, roleid);
		   }
		   //4:提交事务
		   conn.commit();
	   }catch(SQLException e){
		   conn.rollback();
		   throw e;
	   }finally{
		   DbUtil.close(conn);
	   }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值