JAVA概述
第一部分:java入门基础
- java数组入门教程
- java数组的遍历
- 基于debian(ubuntu)的JDK安装与卸载-vps环境搭建实录(一)
- java环境变量配置(windows7系统)
- java开发环境配置
- 第一个java程序 helloword
- 使用eclipse快速开发java程序
- Java基础语法
- Java对象和类
- Java基本数据类型
- Java变量类型
- Java修饰符
- Java运算符
- Java循环结构 – for, while 及 do…while
- Java分支结构 – if…else/switch
第二部分:java常用类
- Java Number类
- Java Character类
- Java String类
- Java日期时间
- java异常处理分类
- java Exception异常处理实例
- java.util.UUID 工具类详解
- java数字格式化类DecimalFormat详解
第三部分:jdbc系列教程
- JDBC系列教程之一:jdbc简单介绍
- JDBC系列教程之二:jdbc连接数据的步骤
- JDBC系列教程之三:JDBC基本的CRUD(创建、读取、更新、删除)
- JDBC系列教程之四:SQL注入PreparedStatement和Statement
- JDBC系列教程之五:数据类型
- JDBC系列教程之六:一个简单用户相关的数据访问层
- JDBC系列教程之七:用配置文件(properties)和反射实现与具体类的耦合
- JDBC系列教程之八:事务-ACID
- JDBC系列教程之九:事务-SavePoint与JTA
- JDBC系列教程之十:隔离级别
- JDBC系列教程之十一:其他的几个API
- JDBC系列教程之十二:DatabaseMetaData(数据库的元数据信息)和ParameterMetaData(参数的元数据信息)
- JDBC系列教程之十三:ResultSetMetaData
- JDBC系列教程之十四:用反射ResultSetMetaData将查询结果读入对象中
- JDBC系列教程之十五:数据源和连接池
第四部分:java高级特征
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
java8新特征详解
java文件操作专题教程
知识点
相关文章
更多最近更新
更多JDBC系列教程之十:隔离级别
2019-02-28 23:29|来源: 领悟书生
隔离级别:多线程并发读取数据时的正确性(一般用数据库的默认的)
l connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
l V:可能出现,X:不会出现
隔离级别 | 脏读 | 不可重复读 | 幻读 |
读未提交(Read uncommitted) | V | V | V |
读已提交(Read committed) | x | V | V |
可重复读(Repeatable read) | x | x | V |
可串行化(Serializable ) | x | x | x |
脏读(dirty reads)
一个事务读取了另一个未提交的并行事务写的数据。
不可重复读(non-repeatablereads)
一个事务重新读取前面读取过的数据, 发现该数据已经被另一个已提交的事务修改过。
幻读(phantom read)
一个事务重新执行一个查询,返回一套符合查询条件的行, 发现这些行因为其他最近提交的事务而发生了改变。
注:代码参考TxTest.java
本文链接:JDBC系列教程之十:隔离级别,转自请注明:http://www.656463.com/article/804
相关问答
更多-
wdcp系列教程之隐藏Nginx版本号[2022-04-26]
WDCP 隐藏Nginx版本号教程各大门户都隐藏nginx的版本号 他们如此做必有道理所以我们也学习吧总共两步!第一步:先到 /www/wdlinux/nginx-1.4.1(我升级了版本)/conf 下 找到 nginx.conf 文件然后打开找到 tcp_nodelay on;在下面那一行添加 server_tokens off; 即可如:keepalive_timeout60; tcp_nodelay on;server_tokens off;这样就行了 (高手别笑,教程本来就是要方便简便)第二步:如 ... -
说说Spring的事物处理以及隔离级别?[2024-03-23]
spring的事务处理主要是依靠AOP实现的,这个没什么好说的随便搜索一下,网上很多示例。 隔离级别是针对并发事务而言的,单个事务的处理很简单不多说。并发事务的处理则比较复杂,因为往往一条数据是跨事务的,这会造成许多不可预知的后果。 一般来说,系统执行并发事务时,会把当前在执行的事务独立起来,也就是和其他事务进行隔离。好像系统中只有这一个事务,其他事务不存在一样。这也就是完全隔离,即系统中只运行单位时间内,最多只有一个事务在执行,其他事务要等到该事务执行完毕之后才能执行,这在现实中基本是不可行的,比如,你要 ... -
什么叫spring的事务的隔离级别[2022-04-20]
key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。 PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。 -
Spring框架默认事物隔离级别[2022-06-19]
这个默认隔离级别是与具体的数据库相关的 采取的是具体数据库的默认隔离级别 不同的数据库是不一样的 -
spring的传播行为和隔离级别[2022-03-24]
在使用Spring时,大部分会用到他的声明式事务,简单的在配置文件中进行一些规则配置,利用Spring的AOP功能就能轻松搞定事务问题;这里面就涉及到一个事务的传播属性问题Propagation,它在TransactionDefinition接口中定义,以供PlatfromTransactionManager使用,PlatfromTransactionManager是spring事务管理的核心接口。 TransactionDefinition public interface TransactionDefi ... -
说说Spring的事物处理以及隔离级别?[2022-03-09]
spring的事务处理主要是依靠AOP实现的,这个没什么好说的随便搜索一下,网上很多示例。 隔离级别是针对并发事务而言的,单个事务的处理很简单不多说。并发事务的处理则比较复杂,因为往往一条数据是跨事务的,这会造成许多不可预知的后果。 一般来说,系统执行并发事务时,会把当前在执行的事务独立起来,也就是和其他事务进行隔离。好像系统中只有这一个事务,其他事务不存在一样。这也就是完全隔离,即系统中只运行单位时间内,最多只有一个事务在执行,其他事务要等到该事务执行完毕之后才能执行,这在现实中基本是不可行的,比如,你要 ... -
Oracle不支持可重复读取。 它仅支持Read Committed和Serializable。 我可能会误解,但为Oracle设置可重复读取的隔离级别可能会导致具有Serializable隔离级别的事务。 简而言之,您只需要支持您希望的隔离级别的数据库支持。 我不能说InnoDB和PostgreSQL,但如果它们不支持所需的隔离级别,它们也会适用。 数据库可以自动将隔离级别升级到更高级别以满足所需的隔离特性。 如果您的应用程序需要的隔离级别必须是可重复读取,您应该重新考虑这种方法。 像你正确推断的问题是, ...
-
TL; DR:Pg 9.1中可检测性的可串行性冲突得到了显着改善,因此升级。 从您的描述中弄清楚实际的SQL是什么以及您期望获得回滚的原因是很棘手的。 看起来你已经严重误解了可序列化的隔离,或许认为它完美地测试了所有的谓词,但它没有,特别是在Pg 8.4中。 SERIALIZABLE并不能完美地保证事务的执行就好像它们是串行运行一样 - 如果它完全可能的话,从性能的角度来看这样做会非常昂贵。 它只提供有限的检查。 确切地说检查了什么以及数据库与数据库以及版本之间的差异如何,因此您需要阅读适用于您的数据库版本 ...
-
是的,您可以使用Resource元素中的defaultTransactionIsolation属性进行设置。您应该将hibernate的事务隔离级别设置为2(READ_COMMITTED的java.sql.Connection常量。 然后在您的SQL Server 2005实例中执行以下操作(没有活动连接): ALTER DATABASE [database_name] SET ALLOW_SNAPSHOT_ISOLATION ON; ALTER DATABASE [database_name] SET READ_COMMITTED_SNAPSHOT ON; 通过执行此查询进行测试: SELECT [name], ...