你的位置:首页 > 软件开发 > Java > Java基础 —— 事务

Java基础 —— 事务

发布时间:2016-07-30 10:00:09
一、事务简单点说,事务就是一件事情。所有与事务相关的内容都是围绕这一件事情展开的。二、事务的特性:ACIDA:Atomicity(原子性),事务必须是一个不可分割的整体。C:Consistency(一致性),执行完数据库操作后,数据不会被破坏。如:从 A 账户转账到 B,要保证 ...

Java基础 —— 事务

一、事务

简单点说,事务就是一件事情。所有与事务相关的内容都是围绕这一件事情展开的。

二、事务的特性:ACID

A:Atomicity(原子性),事务必须是一个不可分割的整体。

C:Consistency(一致性),执行完数据库操作后,数据不会被破坏。如:从 A 账户转账到 B,要保证 A 账户扣钱后,B 账户能增加对应的钱数。

I:Isolation(隔离性),多个人对同一条数据同时进行操作时,若不加以控制,会产生非常大的麻烦。而这个控制就是指隔离性。

D:Durability(持久性),若执行一条 insert 语句,数据库必须保证一条数据永久地存放到数据库中。

事务的 ACID 特性,都是为了保证数据的一致性。隔离性是保证事务一致性的手段。

三、事务的隔离级别(Transanction Isolation Level)

上面说过,事务的隔离性。所说的控制,就是指这里的隔离级别。

(1)READ_UNCOMMITED:读未提交

(2)READ_COMMITED:读已提交

(3)REPEATABLE_READ:可重复读

(4)SERIALIZABLE:

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

四、事务中存在的问题

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

(2)不可重复读——事务 A 读取了事务 B 已提交的更改数据。

(3)幻读——事务 A 读取事务 B 已提交的新增的数据。

不论是在什么情况下,脏读都是不被允许的。

五、事务的隔离级别与事务中存在的问题的对应关系

Java基础 —— 事务

其实事务的隔离级别的存在本身就是为了解决事务中出现的问题。

MySQL 默认的隔离级别为 READ_COMMITED。

需要提醒的是,这里所说的事务隔离级别规范是 JDBC 提出来的。

到数据库级,隔离级别是通过锁来控制的,当插入数据时,锁定表,叫“锁表”。当更新数据时,锁定行,叫“锁行”。

 


 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Java基础 —— 事务

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。