JDBC事务

事务的特性:

  1. 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。
  2. 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。
  3. 隔离性(isolation):一个事务的执行不能被其他事务所影响。
  4. 持久性(durability):一个事务一旦提交,事物的操作便永久性的保存在DB中。即使此时再执行回滚操作也不能撤消所做的更改。
    事务(Transaction)的四个属性(ACID)的另一种解释:
    原子性(Atomic) 对数据的修改要么全部执行,要么全部不执行。
    一致性(Consistent) 在事务执行前后,数据状态保持一致性。
    隔离性(Isolated) 一个事务的处理不能影响另一个事务的处理。
    持续性(Durable) 事务处理结束,其效果在数据库中持久化。
    实例1:
private Connection conn = null;  
private PreparedStatement ps = null;  
try {  
	conn.setAutoCommit(false);  //将自动提交设置为false  
	ps.executeUpdate("修改SQL1");//执行修改操作 
    ps.executeUpdate("修改SQL2"); //执行修改操作  
	ps.executeQuery("查询SQL");  //执行查询操作                 
	conn.commit();      //当两个操作成功后手动提交  
	} catch (Exception e) {  
		conn.rollback();    //一旦其中一个操作出错都将回滚,使两个操作都不成功 
		e.printStackTrace();  
	}

实例2:

       PreparedStatement ps = null;  
        Connection conn=null;
		Savepoint sp=null;
		try {
			conn=dbUtil.getCon();
			conn.setAutoCommit(false);//取消自动提交
			ps=conn.PreparedStatement(sql语句);
	        ps.executeUpdate("修改SQL1");//执行修改操作 
			sp=conn.setSavepoint();//这是一个保存点
            ps.executeUpdate("修改SQL2"); //执行修改操作  
		} catch (Exception e) {
			try {
				conn.rollback(sp);//事务回滚sp保存点,保存点下部分有报错则全部不执行,只执行上半部。
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
			e.printStackTrace();
		}finally{
			try {
				conn.commit();//提交事务
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值