- 浏览: 545572 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
原文地址“http://z466459262.iteye.com/blog/769657
Java代码 收藏代码
隔离级别
两个事务并发的读取一个东西。。。
隔离级别
读未提交(read uncommitted) :(可以读未提交的)
问题是:
-----脏读(如果他没提交就回滚了,那么你读出来的就是错误的信息)
-----不可重复读(重复读时值不同)(我第一次读的是100。而第二次读的却是200,重复读取出来的数据不一致就叫不可重复读)
-----幻读(重复读时条数不同)(比如我第一次查出来是5条数据,而这时有另一个线程插入了一条记录,如果我再去查的话,那么又多了,我们将这条记录
称为幻影数据,)
读已提交(read committed):因为只对读进行了控制,而没有对别人插入进行限制
问题是:
不可重复读(别人修改数据导致值不同)
幻读(别人插入数据导致条数增加)----oracle的默认隔离级别,也就是说oracle只在别人先对数据修改的时候上锁,如果有人先读了,然后又有人修改了,那么他不上锁
可重复读: 不但对读进行了控制,而且可以锁定我读的这条记录,那么当然别人改不了我读
的这条记录 ---mysql的隔离级别
问题是:
幻读----只对一条数据起作用,他没锁定整个表,当然我还可以插入
串行化:锁定整个表,课串行化的意思就是不可并行化,那么对并发效率是有极大影响的
java中设置隔离级别:
conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMIT);
String querysql = "select account from accounts where cardnum=? for update"; //注意这里加入了数据库的锁
String updatesql = "update accounts set account = ? where cardnum = ?";
boolean flag = false;
try{
conn = JdbcUtils.getConnection();
conn.setAutoCommit(false); //并且设置了手动提交,如果不设置的话,将会自动提交
pstmt = conn.prepareStatement(querysql);
rs = pstmt.executeQuery();
double oldMoney= -1 , newMoney = -1;
if(rs.next()){
oldMoney = rs.getDouble("account");
newMoney = Arith.sub(oldMoney,money);
if(newMoney>0){
pstmt = conn.prepareStatement(updatesql);
pstmt.setDouble(1,newMoney);
pstmt.setString(2,cardNum);
int i = pstmt.executeUpdate();
if(i>0)flag = true;
}
conn.commit();
}catch(Exception e){
throw e;
}finally{
jdbcUtils.close(conn,rs,pstmt);
}
}
Java代码 收藏代码
隔离级别
两个事务并发的读取一个东西。。。
隔离级别
读未提交(read uncommitted) :(可以读未提交的)
问题是:
-----脏读(如果他没提交就回滚了,那么你读出来的就是错误的信息)
-----不可重复读(重复读时值不同)(我第一次读的是100。而第二次读的却是200,重复读取出来的数据不一致就叫不可重复读)
-----幻读(重复读时条数不同)(比如我第一次查出来是5条数据,而这时有另一个线程插入了一条记录,如果我再去查的话,那么又多了,我们将这条记录
称为幻影数据,)
读已提交(read committed):因为只对读进行了控制,而没有对别人插入进行限制
问题是:
不可重复读(别人修改数据导致值不同)
幻读(别人插入数据导致条数增加)----oracle的默认隔离级别,也就是说oracle只在别人先对数据修改的时候上锁,如果有人先读了,然后又有人修改了,那么他不上锁
可重复读: 不但对读进行了控制,而且可以锁定我读的这条记录,那么当然别人改不了我读
的这条记录 ---mysql的隔离级别
问题是:
幻读----只对一条数据起作用,他没锁定整个表,当然我还可以插入
串行化:锁定整个表,课串行化的意思就是不可并行化,那么对并发效率是有极大影响的
java中设置隔离级别:
conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMIT);
String querysql = "select account from accounts where cardnum=? for update"; //注意这里加入了数据库的锁
String updatesql = "update accounts set account = ? where cardnum = ?";
boolean flag = false;
try{
conn = JdbcUtils.getConnection();
conn.setAutoCommit(false); //并且设置了手动提交,如果不设置的话,将会自动提交
pstmt = conn.prepareStatement(querysql);
rs = pstmt.executeQuery();
double oldMoney= -1 , newMoney = -1;
if(rs.next()){
oldMoney = rs.getDouble("account");
newMoney = Arith.sub(oldMoney,money);
if(newMoney>0){
pstmt = conn.prepareStatement(updatesql);
pstmt.setDouble(1,newMoney);
pstmt.setString(2,cardNum);
int i = pstmt.executeUpdate();
if(i>0)flag = true;
}
conn.commit();
}catch(Exception e){
throw e;
}finally{
jdbcUtils.close(conn,rs,pstmt);
}
}
发表评论
-
使用amoeba 数据库端出现 ERROR 1044 (42000):
2015-11-25 11:29 862原文地址:http://blog.csdn.net/ljunc ... -
amoeba实现mysql读写分离
2015-11-25 11:29 525原文地址:http://coolnull.com/1463.h ... -
Mysql繁忙主从库在线修改表结构与添加索引问题
2015-11-19 11:01 1429原文地址:http://www.itpub.net/threa ... -
mysql 主从复制双主架构在线修改表结构、在线DDL
2015-11-19 10:59 1041原文地址:http://blog.csdn.net/clh60 ... -
高性能Mysql主从架构的复制原理及配置详解
2015-11-19 10:09 801原文地址:http://blog.csdn ... -
MySQ索引操作命令总结(创建、重建、查询和删除索引命令详解)
2015-11-18 18:13 582原文地址:http://www.shangxueba.com/ ... -
数据库性能优化一:数据库自身优化
2015-11-12 15:57 452原文地址:http://www.cnblo ... -
mysql在一个表中存储创建时间和最近更新时间
2015-10-26 15:10 1074原文地址:http://blog.sina.com.cn/s/ ... -
Mysql 如何设置字段自动获取当前时间
2015-10-26 15:07 1002原文地址:http://www.cnblogs.com/lhj ... -
MySQL的create table as 与 like区别
2015-04-30 10:05 647原文地址:http://blog.csdn.net/longy ... -
Mysql 慢查询和慢查询日志分析
2015-04-21 12:01 623原文地址:http://www.cnblogs.com/wrm ... -
linux下mysql的root密码忘记解决方
2015-04-20 15:58 537原文地址:http://www.cnblogs.com/all ... -
手把手搭建sphinx环境
2015-04-20 10:53 724原文地址:http://blog.csdn.net/uestc ... -
【PHP征文】php 使用 sphinx 实现实时 innodb 全文索引
2015-04-20 10:51 1490原文地址:http://cloudbbs.org/forum. ... -
sphinx mysql innodb 联表数据源配置
2015-04-20 10:48 858原文地址:http://blog.phpdr.net/sphi ... -
mysql垂直分区和水平分区
2015-04-20 10:38 544原文地址:http://itsoul.iteye.com/bl ... -
MySQL隔离级别
2015-04-13 11:53 485原文地址:http://blog.csdn.net/taylo ... -
数据库事务隔离级别
2015-03-26 17:10 457原文地址:http://blog.csdn.net/fg200 ... -
JDBC事务隔离级别
2015-03-26 14:04 509原文地址:http://blog.csdn ... -
mysql开发者sql权威指南
2015-03-19 15:43 358原文地址:http://www.r20.nl/SQLforMy ...
相关推荐
•隔离性(Isolation) 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。 A ------> B B ------> C •持久性(Durability...
有关JDBC事务 JTA事务 传播特性 隔离级别等等
6. 事务的隔离级别 第五章 JDBC2.0 1. ResultSet的可滚动性(默认只能向下(向前)移动) 2. ResultSet的可更新性(默认是不可以更新) 3. 批处理 4. 高级数据类型 第六章 2.0扩展内容 1. 连接池 2. 数据源(工厂模式...
11. 处理事务 & 事务的隔离级别(视频16-17) 12. 批量处理(视频18) 13. 数据库连接池 & C3P0 & DBCP(视频19-20) 14. 使用 DBUtils(视频21-23) 15. 使用 JDBC 调用函数 & 存储过程(视频24) 16. 课件及源码 ----------...
2.1.6 事务隔离级别 5 2.2 DriverManager类 6 2.2.1 跟踪可用驱动程序 6 2.2.2 建立连接 7 2.3 Statement对象 7 2.3.1 创建Statement对象 8 2.3.2 使用Statement对象执行语句 8 2.3.3 语句完成 8 2.3.4 语句完成...
五、事务的特性和隔离级别(概念性问题---面试)。 1.什么是事务 2.mysql的事务 1.QueryRunner 1.事务的特性ACID 2.并发访问问题----由隔离性引起 3.事务的隔离级别 默认是自动事务: 执行sql语句:...
基本目标: 了解JDBC (Java Database Connectivity)相关概念 JDBC的四种类型的驱动 JDBC核心接口与类 JDBC体系结构图和开发步骤 JDBC 事务 进阶目标: ... 事务的隔离级别 批处理(Batch)
8.6 数据库的隔离级别介绍 56 8.6.1 未提交读 57 8.6.2 提交读 58 8.6.3 重复读 59 8.6.4 序列化读 60 8.7 小结 62 第九节 PreparedStatement接口的使用 62 第十节 CallableStatement接口的使用 62 9.1 无参无返回值...
文章目录事务一、事务的基本介绍1、概念2、操作3、操作实例4、MySQL数据库中默认自动提交二、事务的四大特征三、事务的隔离级别1、概念2、存在的问题3、隔离级别四、Jdbc事务控制1、概述2、控制事务的API:3、核心...
本课程《JDBC核心技术精讲》为JavaWeb必学课程。课程内容丰富全面,全程手写代码,可以带你一步一步学会JDBC!课程内容涵盖如下:1、JDBC概述及核心类介绍 2、JDBC入门案例 3、Statement对象介绍和使用4、JDBC使用...
IsolationTest.java IsolationTest是用于测试MySQL可以实现的各种隔离级别的程序。 测试隔离级别READ COMMITTED和SERIALIZABLE。 通过设置隔离级别,然后执行一系列交织操作,然后将操作结果打印在数据库上来执行...
45_隔离级别-并发现象展示-避免 46_表级锁-行级锁-forupdate 47_mysql数据源连接池 48_NIO" d% v1 P# ~3 S/ L 49_NIO程序- u5 T2 a5 N" {! @8 q4 c 50_Vmware安装-client centos7机安装2 Q. l/ r7 y) ^% n8 |4 _. k ...
可以在spring中对整个项目的事务进行控制
Apache Kyuubi是一个分布式和多租户网关,为数据湖查询引擎(例如Spark、Flink或Trino等)提供SQL等查询服务。...Kyuubi及其引擎都是存储独立的,支持众多的数据源,并且Kyuubi支持在连接级别隔离后台引擎实例
Apache Kyuubi是一个分布式和多租户网关,为数据湖查询引擎(例如Spark、Flink或Trino等)提供SQL等查询服务。...Kyuubi及其引擎都是存储独立的,支持众多的数据源,并且Kyuubi支持在连接级别隔离后台引擎实例
Apache Kyuubi是一个分布式和多租户网关,为数据湖查询引擎(例如Spark、Flink或Trino等)提供SQL等查询服务。...Kyuubi及其引擎都是存储独立的,支持众多的数据源,并且Kyuubi支持在连接级别隔离后台引擎实例
Apache Kyuubi是一个分布式和多租户网关,为数据湖查询引擎(例如Spark、Flink或Trino等)提供SQL等查询服务。...Kyuubi及其引擎都是存储独立的,支持众多的数据源,并且Kyuubi支持在连接级别隔离后台引擎实例
Apache Kyuubi是一个分布式和多租户网关,为数据湖查询引擎(例如Spark、Flink或Trino等)提供SQL等查询服务。...Kyuubi及其引擎都是存储独立的,支持众多的数据源,并且Kyuubi支持在连接级别隔离后台引擎实例
Apache Kyuubi是一个分布式和多租户网关,为数据湖查询引擎(例如Spark、Flink或Trino等)提供SQL等查询服务。...Kyuubi及其引擎都是存储独立的,支持众多的数据源,并且Kyuubi支持在连接级别隔离后台引擎实例
主要内容涉及java事务的基础,事务的四大特性,数据库中的事务,并发访问出现的问题和隔离级别设置,JDBC中的实现以及事务相关面试问题的整理汇总。