Spring事务控制简述
2020-04-20 09:44:08来源:博客园 阅读 ()
Spring事务控制简述
-
在Spring事务控制,我们需要明确三点
-
JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计业务层的事务处理解决方案
-
Spring框架为我们提供了一组事务控制的接口,这组接口在spring-tx-5.0.2.RELEASE.jar中
-
Spring事务控制都是基于AOP的,它既可以使用编程的方式实现,也可以使用配置的方式实现
-
-
Spring事务控制的API介绍
-
PlatformTransactionManager:此接口是Spring的事务管理器,提供了3个方法
-
TransactionStatus getTransaction(TransactionDefinition definition):获取事务状态信息
-
void commit(TransactionStatus status):提交事务
-
void rollback(TransactionStatus status):回滚事务
-
注意事项:在开发过程中,用的都是它的实现类
-
org.springframework.jdbc.datasource.DataSourceTransactionManager:在Spring JDBC或者ibatis进行持久化数据时使用
-
org.springframework.orm.hibernate5.HibernateTransactionManager:在Hibernate版本进行持久化数据时使用
-
-
TransactionDefinition:它是事务的定义信息对象
-
String getName():获取事务对象名称
-
int getIsolationLevel():获取事务隔离级别
-
事务的隔离级别:是反映事务提交并发访问时的处理态度
-
ISOLATION_DEFAULT:默认级别,下列的某一种
-
ISOLATION_READ_UNCOMMITTED:可以读取未提交数据
-
ISOLATION_READ_COMMITTED:只能读取已提交数据,解决脏读问题(Oracle的默认级别)
-
ISOLATION_REPEATABLE_READ:是否读取其他事务提交修改后的数据,解决不能重复读的问题(MySQL的默认级别)
-
ISOLATION_SERIALIZABLE:是否读取事务提交添加后的数据,解决幻影读问题
-
-
-
int getPropagationBehavior():获取事务传播行为
-
事务的传播行为
-
REQUIRED:如果当前没有事务,就创建一个事务,有就添加到事务中。适用于增删改
-
SUPPORTS:如果有事务,就使用事务,没有也没事,适用于查
-
MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常
-
REQUERS_NEW:新建事务,如果当前在事务中,把当前事务挂起
-
NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起
-
NEVER: 以非事务方式运行,如果当前存在事务,抛出异常
-
NESTED:如果当前存在事务,则在做套事务内执行。如果当前没有事务,则执行REQUIRED类似的操作
-
-
-
int getTimeout():获取事务超时时间,默认值是-1,没有超时限制,如果设置超时时间,就以秒计算
-
boolean isReadOnly():获取事务是否只读,建议查询使用只读
-
-
TransactionStatus:此接口提供的是事务具体的运行状态
-
void flush():刷新事务
-
boolean hasSavepoint():获取事务是否存在存储点
-
boolean isCompleted():获取事务是否完成
-
boolean isNewTransaction():获取事务是否为新的事务
-
boolean isRollbackOnly():获取事务是否回滚
-
void setRollbackOnly():设置事务回滚
-
-
-
原文链接:https://www.cnblogs.com/aitiknowledge/p/12721069.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- Java学习之第二天 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash