码迷,mamicode.com
首页 > 其他好文 > 详细

009-事务管理

时间:2017-12-14 03:45:29      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:tom   数据   代码   jdb   ant   通过   mysql   style   es2017   

一、事务概述

  事务是一个不可分割的整体。

  事务ACID特性:原子性(Atomicty)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

事务的隔离级别

  READ_UNCOMMITTED

  READ_COMMITTED

  REPEATABLE_READ

  SERIALIZABLE

  从上往下,级别越来越高,并发性越来越差,安全性越来越高。

二、事务所面临的问题

  定义的事务的隔离级别是为了解决数据在高并发下产生的问题:Dirty Read(脏读)、Unrepreatable Read(不可重复读)、Phantom Read(幻读)

脏读示例

  技术分享图片

不可重复读

  技术分享图片

幻读

  技术分享图片

概述

  脏读:事务A读取了事务B未提交的数据,并在这个基础上又做了其他操作

  不可重复读:事务A读取了事务B已提交的更改数据

  幻读:事务A读取了事务B已提交的新增数据

结论:不允许脏读,后两条大多数情况不考虑。

   技术分享图片

JDBC也提供了四类事务隔离级别。mysql默认是READ_COMMITTED。

  其他可以通过代码查看  

        DatabaseMetaData metaData = DBUtil.getConnection().getMetaData();
        int defaultTransactionIsolation = metaData.getDefaultTransactionIsolation();

数据库隔离事务,其实是锁。插入数据时,就锁定表,锁表。更新数据时,就是锁行。

    

009-事务管理

标签:tom   数据   代码   jdb   ant   通过   mysql   style   es2017   

原文地址:http://www.cnblogs.com/bjlhx/p/8035045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!