java中如何修改事务的隔离级别
事务的特性:
原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 (多条语句要么都成功,要么都失败。)
一致性(Consistency)事务前后数据的完整性必须保持一致。转账(减钱,加钱)
隔离性(Isolation)事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离。
持久性(Durability)持久性是指一个事务结束(一旦被提交或者回滚),它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
并发访问问题(不考虑隔离性):
1.脏读:A事务读取到B事务未提交或是已经提交的数据。
2.不可重复读:A事务读取到B事务已经提交的数据。导致A事务多次查询出来数据不一致。
3.虚读/幻读:A事务读取到B事务已经提交的数据。导致A事务多次查询出来数据不一致。这种情况比较少见,操作一万次还不一定能够遇见一次。
事务的隔离级别:
Java API,事务的隔离级别大致分为4种。在接口Connection中的setTransactionIsolation方法可以设置事务的隔离级别。
void setTransactionIsolation(int level)
throws SQLException
- 试图将此
Connection
对象的事务隔离级别更改为给定的级别。可能的事务隔离级别是Connection
接口中定义的常量。注:如果在事务处理期间调用此方法,则结果由实现定义。
-
-
- 参数:
level
- 以下Connection
常量之一:Connection.TRANSACTION_READ_UNCOMMITTED
、Connection.TRANSACTION_READ_COMMITTED
、Connection.TRANSACTION_REPEATABLE_READ
或Connection.TRANSACTION_SERIALIZABLE
。(注意,不能使用Connection.TRANSACTION_NONE
,因为它指定了不受支持的事务。)- 抛出:
SQLException
- 如果发生数据库访问错误,在关闭的连接上调用此方法,或者给定参数不是Connection
常量之一.
详细介绍下:
首先在数据库查看下自己数据库的隔离级别:
show variables like '%isolation%';
或
select @@tx_isolation;
void setTransactionIsolation(int level),level的参数分别是,1,2,4,8;
mysql默认隔离级别是:4
oracle默认隔离级别是:2
Connection.TRANSACTION_READ_UNCOMMITTED :level=1,会出现,脏读,不可重复读,虚读/幻读等情况。
Connection.TRANSACTION_READ_COMMITTED: level=2,会出现,不可重复读或是虚读/幻读。
Connection.TRANSACTION_REPEATABLE_READ
: level=4,会现虚读/幻读,可惜是万分之一的概率,我操作的时候,一次没有遇见过,尴尬。
Connection.TRANSACTION_SERIALIZABLE : level=8,不会出现上面的几种情况,虽然安全,但是效率不高。
一般使用的时候,根据Connetion连接对象设置参数:
数据库连接对象.setTransactionIsolation(参数);
参数:1,2,4,8
java中如何修改事务的隔离级别的更多相关文章
- 事务的隔离级别,mysql中开启事务、django中开启事务
目录 一.事务的特性 二.数据库中开启事务 三.Django中开启事务的两种方式 第一种 第二种 四.事务的隔离级别 隔离级别 如何查看mysql隔离级别? 修改事务的隔离级别 隔离级别解释 read ...
- 数据库事务的四大特性以及事务的隔离级别(mysql)
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指 ...
- 数据库事务的四大特性以及事务的隔离级别-与-Spring事务传播机制&隔离级别
数据库事务的四大特性以及事务的隔离级别 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ ...
- 数据库事务的四大特性以及4种事务的隔离级别-以及对应的5种JDBC事务隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...
- MySQL事务的隔离级别
为什么需要隔离 当多个线程都开启事务操作数据库中的数据时,数据库系统要能进行隔离操作,以保证各个线程获取数据的准确性,在介绍数据库提供的各种隔离级别之前,我们先看看如果不考虑事务的隔离性,会发生的几种 ...
- MySQL数据库事务的四大特性以及事务的隔离级别
一.事务的四大特性(ACID) 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: 1.原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因 ...
- 事务的隔离级别以及oracle中的锁
事务的概念及特性 事务,一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 例如:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语 ...
- Java 事务的隔离级别
引言 之前关于事务的文章已介绍了事务的概念以及事务的四个属性(ACID),相信你对事务应该有所认识和了解. 本篇文章是关于事务的隔离性,介绍数据库提供的多种隔离级别. 数据库访问的并发性问题 所谓事务 ...
- SQL Server中的事务与其隔离级别之脏读, 未提交读,不可重复读和幻读
原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...
随机推荐
- Django框架之ORM的相关操作之一对一关系(四)
ORM中一对一在当一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁,那么就把不常用的字段单独拿出来做成一张表,然后通过一对一进行关联起来.举个例子:在我们登录某个账户的时候,一般会显示 ...
- word中如何删除一张空白表格
百度知道:https://baijiahao.baidu.com/s?id=1631677477148377412&wfr=spider&for=pc 当word中出现如下一张空白表格 ...
- txt文件太大打不开怎么办
#开始 最近在调试代码的时候,生成了一个400MB的日志文件 找了很多文本编辑器,都表示太大了打不开 QAQ #解决方案 百度下载 “txt杀手” 用这个软件把文本文件拆分成小份就可以打开了 输入如图 ...
- EVE扩大虚拟内存
1.首先通过df -lh命令查看虚拟机的根目录下是否有足够大的硬盘空间. root@eve-ng:~# df -hFilesystem Size Used Av ...
- JSP技术(一)
Servlet的两个缺点: 1.首先,写在Servlet中所有的HTML标签必须包含JAVA字符串,使得处理HTTP响应报文工作十分繁琐. 2.所有的文件和HTML标记是硬代码,导致即使是微小变化,也 ...
- Druid数据源SQL数据库与Spring监控
Druid监控概要说明 为什么要监控? Druid是什么?德鲁伊 URL监控配置说明 配置步骤 步骤 配置 第一步 web.xml 配置 WebStatFilter 第二步 WebStatFilter ...
- vscode安装过的插件
1.VSCode的Vue插件Vetur设置,alt+shift+f格式化 对应配置 今天看到的文章安装插件可以参考: https://blog.csdn.net/maixiaochai/article ...
- cf--TV Subscriptions (Hard Version)
time limit per test:2 seconds memory limit per test:256 megabytes input:standard input output:standa ...
- node vue 项目git 管理
push 上传到云的时候,依赖包及相关文件是不上传上去的, 所以每次克隆到本地后,node 项目运行前须要 npm install 安装对应依赖 vue 项目编译前也须要 npm install,安 ...
- JAVA面向对象解决实际问题实例(一)
某次战役中,为便于信息交互,我军侦察部门将此次战役的关键高地坐标设定为(x=0,y=0)并规定,每向东增加100米,x加1,每向北增加100米,y加1.同时,我军情报部门也破译了敌军向坦克发送的指挥信 ...