内容正文:
第10章Spring管理数据库事务
·Spring与事务管理
·编程式事务管理
·声明式事务管理
10.1 Spring与事务管理
10.1.1
Spring对事务管理的支持
目录
Contents
10.1.2
事务管理的核心接口
初心至善匠心育人
10.1 Spring与事务管理
10.1.1 Spring对事务管理的支持
·事务是指数据库中的一个操作序列,它由一系列的SQL指令组成。在Java EE程序
开发中,事务管理是一个影响范围较广的领域,在程序与数据库交互时,保证事
务的正确执行尤为重要。由于实际开发中事务管理存在的诸多弊端,Spring框架
针对事务管理提供了自己的解决方案。
·对于事务管理,Spring采用的方式是通过在高层次建立事务抽象,然后在此基础
上提供一个统一的编程模型,这意味着,Spring.具有在多种环境中配置和使用事
务的能力,无论是Spring JDBC,还是以MyBatis为代表的ORM框架,Spring都
能够使用统一的编程模型对事务进行管理并为事务管理提供通用的支持。
10.1 Spring与事务管理
10.1.1 Spring对事务管理的支持
·基于Spring IOC和Spring AOP,Spring提供了声明式事务管理的方式,它允许开
发人员直接在Spring容器中定义事务的边界和属性,除此,之外,Spring还实现了
事务管理和数据访问的分离,在这种条件下,开发人员只需关注对当前事务的界
定,其余工作将由Spring框架自动完成。
10.1 Spring与事务管理
10.1.2事务管理的核心接口
·Spring主要通过三个接口实现事务抽象,这三个接口分别是
TransactionDefinition,TransactionStatusPlatformTransactionManager,
它们都位于org.springframework.transaction包中,其中,
TransactionDefinition用于定义事务的属性,TransactionStatus)用于界定事务的
状态,PlatformTransactionManagert根据属性管理事务。
1.TransactionDefinition
·TransactionDefinition接口主要用于定义事务的属性,这些属性包括事务的隔离
级别、事务的传播行为、事务的超时时间、是否为只读事务等。
10.1 Spring与事务管理
10.1.2事务管理的核心接▣
·1)事务的隔离级别
·事务的隔离级别是指事务之间的隔离程度,TransactionDefinition定义了五种隔
离级别,具体如表所示。
隔斋级别
粥还
ISOLATION DEFAULT
采用当府载据集殿认的确高利
无许读取尚未提文的址据变更,可能会导毁粗读。句读友不
ISOLATION READ UNCOMMITTED
可重复读
北许续和已经授文的就据变更,可以进免就读,无法进免幻
ISOLATION READ COMMITTED
读或不可堂复读
ISOLATION REPEATABLE READ
无许可重复谈。可以进兔鞋速、不可重里速,青源演北上什
ISOLATION SERIALIZABLE
李务事行找行。爱遵街托最大
·表中列举了TransactionDefinition定义的五种隔离级别,除了
ISOLATION DEFAULT是TransactionDefinition特有的之外,其余四个分别与
java.sql.Connection接口定义的隔离级别相对应。
10.1 Spring与事务管理
10.1.2事务管理的核心接口
·2)事务的传播行为
传行为
箱述
肤认的事膏神潜行为。知采当碧存在一不事务,到如人
·事务的传播行为是指事务处理
PROPAGATKON REOUIRED
谁享年:如罩教若泛有事每,到创度一个所的事每
知装当常存在一个本秀,则如人减茅年:如果当第视有
过程所跨越的对象将以什么样
PROPAGATION SUPPORTS
事奇,时直执什
PROPAGATION MANDATORY
当前必须存在个事哥,如果没有。慧她出拆常。
的方式参与事务,
的建一个所的第每,知果温故己存6一个书务,将已存
PROPAGATION REQUIRES NEW
在的事务址起
TransactionDefinition定义了
不气静等寻。在是有幂等的清况下找什。如吴省常已存
PROPAGATION _NOT_SUPPORTED
在一个多务。明件巴府在的事务提能
七种事务传播行为,具体如表
水远不发背年首零音,知深当希色许在一个享青。时烟
PROPAGATION NEVER
出异奢
所示。
PROPAGATION NESTED
加果当花存在