18Jdbc事务

在jdbc中处理事务,都是通过Connection完成的(同一事务中所有的操作,都在使用同一个Connection对象),Connection的三个方法与事务相关:

  • setAutoCommit(boolean):设置是否为自动提交事务,如果为true(默认值为true)表示自动提交,也就是每条执行的sql语句都是一个单独的事务,如果设置false,那么就相当于开启了事务;con. setAutoCommit(false)表示开启事务!!!
  • commit():提交事务;con.commit():表示提交事务。
  • rollback():回滚结束事务。con.rollback():表示回滚事务。
    jdbc处理事务的代码格式:
try{
  con. setAutoCommit(false);
  ...
  ...
  con.commit();
}catch(){
  con.rollback();
}

事务隔离级别

1、事务的并发读问题:
并发事务导致的问题大致有5类,其中两类是更新问题,三类是读取问题(下面)。

  • 脏读:读取到另一个未提交数据的事务
  • 不可重复读:两次读取不一致,因为另一事务对该记录做了修改
  • 幻读(虚读):对同一张表的两次查询不一致,因为另一事务插入了一条记录
    不可重复读和幻读的区别:
  • 不可重复读是读取到了另一个事物的更新;
  • 幻读是读取到了另一个事务的插入(MySQL中无法测试到幻读)

2、四大隔离级别
4个等级的事务隔离级别,在不同数据环境下,使用相同的输入,执行相同的工作,根据不同的级别,可以导致不同的结果。不同事物隔离级别能够解决的数据并发问题的能力是不同的。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值