JavaEE-SSM:027 spring数据库事务

1. 配置数据源事务管理器

使用xml配置数据源事务管理器(优选)

org.springframework.jdbc.datasource.DataSourceTransactionManager

使用Java配置数据源事务管理器

2. @Transactional配置项

3.声明式事务流程

4. 使用方法

propagation设置的是传播行为,存在事务就沿用,不存在创建新的事务。

isplation设置的是提交模式

timeout是超时时间

5.隔离级别的选择与使用

一般会选择读写提交,有助于提高并发量,同时遏制脏读问题,但是对于数据一致性问题没有解决。

6. 传播行为

上个批量操作调用单个操作的时候,一旦某个操作出现异常,可以实现单个操作回滚的操作,这需要主方法isolation设置为required,子方法设置为requires_new

7.使用误区

不能自己传播到自己的实现类的方法。

错误使用事务。

两次插入操作不在同一个事务中,可能会导致一个成功,另一个失败。

解决方法:将两次插入转变成一次插入。

长时间占用事务。

与数据库操作无关的操作被放置到事务处理的方法中,更甚至这个方法是非常耗时的,会很影响并发能力。

错误的异常捕获

一旦保存信息步骤发生异常,异常被非正常捕获,不会回滚记录。这会导致业务逻辑问题。

正常的解决办法是:主动抛出异常

猜你喜欢

转载自blog.csdn.net/Day_and_Night_2017/article/details/88574742