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 已提交的新增的数据。
不论是在什么情况下,脏读都是不被允许的。
五、事务的隔离级别与事务中存在的问题的对应关系

其实事务的隔离级别的存在本身就是为了解决事务中出现的问题。
MySQL 默认的隔离级别为 READ_COMMITED。
需要提醒的是,这里所说的事务隔离级别规范是 JDBC 提出来的。
到数据库级,隔离级别是通过锁来控制的,当插入数据时,锁定表,叫“锁表”。当更新数据时,锁定行,叫“锁行”。
六、总结为一张图

Java基础——事务的更多相关文章
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Java基础常见英语词汇
Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的 ['prəʊɡræmɪŋ]编程 OO: object ...
- JAVA基础英语单词表(下)
quantity / 'kwɔntiti / 量,数量 query ...
- Java 基础知识总结
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.数据类型: 数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte 8位 (by ...
- 学习Spring必学的Java基础知识(1)----反射(转)
引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩".以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系 ...
- 学习Spring必学的Java基础知识(1)----反射
引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩".以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系 ...
- Java基础学习(1)——反射
反射就是把Java类中的各种成分映射成相应的Java类(主要用于框架开发) 反射的基石–>Class类 Java程序中的各个类属于同一事物,描述这类事务的Java类名就是Class. Class ...
- Java面试系列--java基础
Java基础总结 JAVA中的几种基本数据类型是什么,各自占用多少字节. 八大基本数据类型,byte:8位,short:16位,int:32位,long:64位,float:32位,double:64 ...
随机推荐
- 如何在maven项目的pom.xml文件中添加jar包
在使用maven进行项目开发时,我们需要在pom.xml文件中添加自己所需要的jar包.这就要求我们获取jar包的groupId和artifactId. 我们可以在一些maven仓库上搜索我们所需要的 ...
- Spring MVC3返回JSON数据中文乱码问题解决(转)
Spring MVC3返回JSON数据中文乱码问题解决 查了下网上的一些资料,感觉比较复杂,这里,我这几使用两种很简单的办法解决了中文乱码问题. Spring版本:3.2.2.RELEASE Jack ...
- vc 实现打印功能
Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这 ...
- 恶心的sbt 超级慢--解决
最近在看sbt相关的资料.发现其构建仓库是用ivy和maven 相信使用过maven的人都知道下载 jar的过程十分痛苦(因为你穷,买不起VPN) 然后我们天朝本来有开源中国的maven库,后来又突然 ...
- 解决 The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path
到 http://tomcat.heanet.ie/native/ 下载最新的tcnative-1.dll放到相应目录即可,我目前下载的是 http://tomcat.heanet.ie/native ...
- Intellij idea 乱码问题(英文操作系统)
英文操作系统导致 Debug 下的变量查看时显示乱码,可通过改变字体解决此问题.
- 延长Toast显示时间
---恢复内容开始--- 由于Toast的显示时间只有两种: Toast.LENGTH_SHORT: 2秒 Toast.LENGTH_LONG: 3.5秒 而且是写死的,没给开发者自定义时间的权利,所 ...
- RESTFUL接口
原文地址:http://kb.cnblogs.com/page/512047/ 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者 ...
- 结合使用saiku、mondrian workbentch建立多维查询报表
1.简介 前几篇博客已经介绍了saiku.mondrian.MDX和模式文件他们之间的关系,那么如何将它们串联起来,供产品人员使用哪?下面咱们一步一步的实现 2.建立数据表 建表语句参考:http:/ ...
- 二十九、EFW框架开发的系统支持SaaS模式和实现思路
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...