数据库事务的四个特性(caid)

事务的四个特性(caid):

原子性:要么全部成功commit,要么全部失败rollback.

一致性:rollback后的数据和原来的一致。

隔离性:事务和事务之间不干扰。一个事务必须与另外一个事务的执行结果隔离开。

持久性:执行成功。持久化数据。


事务和锁:

数据库操作都会产生锁,分为共享锁(select语句产生)和排他锁(dml语句)。一个事务中的语句执行完成后,在commit之后,语句影响的表记录才可以解锁。

如果没有定义事务隔离级别因此多个事务操作同一条数据可能会违反事务的caid特性。存在下面2个问题:

1)脏读取:

一个事务读取另外一个尚未提交的数据,然后第二个事务回滚了,那么第一个事务读取的就是无效的数据。

2)丢失数据修改:两个事务同时对一条数据修改,一个先提交,一个后提交,则先提交的事务的修改数据无效。


事务的属性:

1)事务的传播属性

设置事务的属性,来决定方法用不用事务,如何用。

2)事务的隔离级别

ISOLATION_DEFAULT 

使用数据库默认的隔离级别

ISOLATION_COMMITTED 

允许读取其他并发事务已经提交的更新(防此脏读)

ISOLATION_READ_UNCOMMITTED 

允许读取其他并发事务还未提交的更新,会导致事务之                间的3个缺陷发生,这是速度最快的一个隔离级别,但同                时它的隔离级别也是最低

ISOLATION_REPEATABLE_READ 

除非事务自身修改了数据,否则规定事务多次重复读取        数据必须相同(防此脏读,不可重复读)

ISOLATION_SERIALIZABLE 

这是最高的隔离级别,它可以防此脏读,不可重复读和        幻读等问题,但因其侵占式的数据记录完全锁定,导致 

它影响事务的性能,成为隔离级别中最展慢的一个。 

3)事务只读

PROPAGATION_REQUIRED,readOnly 

用于提升只读操作的效率。

4)事务超时

    PROPAGATION_REGUIRED,timeout_5,readOnly

超过5s,没有回应则,将事务回滚。


常用连接池: 单线程 apache dbcp :org.apache.commons.dbcp.BasicDataSource

兼容dbcp且处理高并发的   tomcat pool jdbc: org.apache.tomcat.jdbc.pool.DataSourc

声明式事务:

spring 用aop在方法执行前开启一个事务,顺利执行完commit,异常则rollback。所以不用在方法里面来开启和关闭事务。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容

  • MySQL技术内幕:InnoDB存储引擎(第2版) 姜承尧 第1章 MySQL体系结构和存储引擎 >> 在上述例子...
    沉默剑士阅读 7,410评论 0 16
  • 本文包括:1、事务概念2、MySQL管理事务3、JDBC控制事务进程4、事务的特性(ACID)5、事务的隔离级别6...
    廖少少阅读 833评论 0 3
  • 我在河边静静的看你,静静的看着你走过了春夏秋冬…… 时光对他而言是缓慢的,像一条静静流淌的河流。 112年后的今天...
    一梦异时空阅读 214评论 0 0
  • 25岁,在没有期待的时节里悄悄到来,没有工作,没有伴侣,一身顽疾。姑娘,你25岁了,可你活的还像个孩子。 常常赞叹...
    默三也阅读 197评论 0 0
  • 直面问题使人痛苦,若不解决,阻碍心智成熟,现在不谋求解决问题,将来的痛苦会更大,延续的时间也更长。 保持平衡自律是...
    墙上的向日葵_阅读 169评论 0 0