事物

事物

什么是事物?
一组操作,要么全执行,要么全不执行。
同生共死

事物的特性

原子性 : 事物的最小的操作单位。
一致性 : 要么全执行,要么全不执行,从一个状态到另一个状态总量不会发生改变。
隔离性 : 事物与事物之间是独立存在的,“互不干扰”
持久性 : 事物一旦提交,无法回滚,不能反向操作

隔离问题

脏读 : 事物A读物到了事物B未提交的数据
不可重复读 : 事物A在多次读取数据的时候,事物B修改了数据,导致事物A多次读取的数据是不一致的。
幻读 : 事物A在批量更改数据时,事物B插入了一条数据,事物A在查询操作结果会发现,有一条数据没有被改动

隔离级别

读未提交 什么都解决不了
不可重复读 解决脏读
可重复读 不可重复读 mysql
串行话 幻读
事物的操作

@Test
public void add() {
Connection conn =null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test4?
characterEncoding=utf-8", "root", "root");
//关闭事物的自动提交
conn.setAutoCommit(false);
PreparedStatement pst = conn.prepareStatement("update people set aslary=aslary-
1000 where id = ?");
pst.setInt(1,2);
pst.executeUpdate();
int i=10/0;
pst=conn.prepareStatement(" update people set aslary=aslary+1000 where id = ? ");
pst.setInt(1,3);
pst.executeUpdate();
//提交事物
conn.commit();
conn.close();
}catch (Exception e){
e.printStackTrace();
if(conn!=null){
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值