1、数据库事务基础知识 1)数据库事务有严格的定义,它必须同时满足4个特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称ACID。 2)数据并发的问题:脏读、不可重复读、幻想读、第一类丢失更新、第二类丢失更新。 3)数据 ...
分类:
编程语言 时间:
2016-06-14 11:37:09
阅读次数:
223
引言 为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。 典型的冲突有: 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 脏读: ...
分类:
其他好文 时间:
2016-06-14 08:54:49
阅读次数:
196
7 并发事务问题之丢失更新 丢失更新:一个事务的更新被另一个事务的更新覆盖了; 时间点事务1事务2t1开始事务t2开始事务t3查询pid=p1的记录结果为[pid=p1,pname=zhangSan,age=23,sex=male]t4查询pid=p1的记录结果为[pid=p1,pname=zhan... ...
分类:
其他好文 时间:
2016-05-30 12:57:52
阅读次数:
524
锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此 ...
分类:
数据库 时间:
2016-05-22 16:43:35
阅读次数:
209
事务的概念
MySQL下操作事物
JDBC下操作事物
事务特性(重点) ACID
事务的隔离级别
隔离级别方案演示
bcUtils中使用ThreadLocal
丢失更新
解决丢失更新可以采用两种方式
连接池
数据库连接池编写原理分析
自定义连接池
DBCP数据源(了解)
dbcp连接池使用
C3P0数据源(必会)
配置Tomcat数据源
JNDI技术简介...
分类:
编程语言 时间:
2016-05-16 13:01:16
阅读次数:
371
首先我们要明白什么叫丢失更新。 比如数据库有一个person表,里面有一条这样的数据 "5 zhangsan shenzhen"; 现在有两个事务A、B同时查找了这一条记录; A事务修改记录为"5 zhangsan beijing"; 提交事务 B事务修改记录为"5 lisi shenzhen"; ...
分类:
数据库 时间:
2016-05-14 20:07:14
阅读次数:
184
1. 2.第一类丢失更新 3.脏读 4.虚读、幻读 5.不可重复读 6.第二类丢失更新 7.数据库的锁机制 8.数据库事务的隔离机制
分类:
Web程序 时间:
2016-03-21 23:08:41
阅读次数:
274
引言为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。脏读:当一个....
分类:
其他好文 时间:
2016-01-18 20:37:45
阅读次数:
182
首先,乐观锁(optimistic locking)与悲观锁(pessimistic locking)基本是针对数据处理来说,也就是跟数据库有关的术语,目的是为了解决并发处理时所遇到的相关性能问题,以避免数据丢失更新。 悲观锁(pessimistic locking):指的是对数据被外界(包括...
分类:
其他好文 时间:
2015-11-15 00:52:42
阅读次数:
288
-- 并发产生的影响/**丢失更新未提交的依赖关系(脏读)不一致的分析(不可重复读)幻读**/-- 丢失更新/**最后的更新将覆盖其他事务所做的更新**/-- 未提交的依赖关系(脏读) --隔离级别:读未提交(Read Uncommitted)/**事务读取到非最终结果的错误记录集.事务进行时没有对...
分类:
其他好文 时间:
2015-09-04 14:03:31
阅读次数:
163