您的位置:首页 > 编程语言 > Java开发

JavaEE初学者

2016-03-27 11:02 369 查看
经过近一周的框架学习,让我理解到事务管理是应用程序开发中不可缺少的技术。

首先事务的四个关键:

1、原子性 atomicity:要么全部完成,要么完全没得作用;

2、一致性 consistency:一旦事务完成,事务提交,要么事务都成功,反之则都不成功;

3、隔离性 isolation:多个事务处理一个数据的时候,每个事务都与其它事务隔离开来,防治数据损坏;

4、持久性 durability:一旦事务完成,不管发生任何系统错误,其结果都不会受到影响,应该被持久化到数据库中;

Spring支持2种管理:

1、编程式管理:就是将事务管理代码嵌入到业务中来控制提交和回滚,在编程式事务里,必须在美国业务操作中包含额外的事务管理代码;

2、声明式管理:多数情况下比编程式好用,它将事务管理代码从业务中分离出来,以声明的方式来实现管理;

事务管理作为一个横切关注点,可以通过Spring AOP框架支持声明事务管理。

Spring 中常用的事务类型:

1、reouered-----propagation reouired:最常用的;支持当前事务,如果没有则新建事务;

2、supports:支持当前事务,如果没有事务,则以非事务的模式进行;

3、mandatory:支持当前事务,如果没有事务,则抛异常;

4、reouires-new:新建一个事务,如果当前存在事务,则将当前事务挂起;

5、not-supported:以非事务的方式进行,当前有事务则将之挂起;

6,、never:以非事务方式进行,有事务则挂起;

7、nested:当前存在事物,则嵌套在事物内进行,如果当前没有事物,则新建事务。

脏读:一个事务访问数据,并对数据进行了修改,但修改还没有提交到数据库中,同事,另外一个事务也访问这个数据,并使用了这个数据;

不可重复读:在一个事务内,多次读同一个数据,在事务还没有结束时,另外一个事务也访问同一数据并修改,由于事务二的修改,导致事务一两次读到的数据可能不一样;

幻读:事务不是独立执行时方式的一种现象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: