我的博客
欢迎来到我的博客
bunny.icu

Spring事务

Spring事务

在Spring配置文件中添加DataSourceTransactionManager,注入数据源

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>

在Serivce类中,注入DataSourceTransactionManager

@Autowired
private DataSourceTransactionManager transactionManager;

在Service方法中,开启事务

DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus status = transactionManager.getTransaction(def);

事务的提交与回滚

transactionManager.rollback(status);
transactionManager.commit(status);

开启事务后必须提交或回滚,否则会导致数据库死锁,后续操作超时。

Reference

Mysql事物锁等待超时 Lock wait timeout exceeded; try restarting transaction
ssm手动提交事务

版权声明


本作品系原创, 转载须遵循 CC BY-NC-ND 4.0 许可协议
本文标题:Spring事务
本文链接:https://www.bunny.icu/archives/725

推荐文章

发表评论

textsms
account_circle
email

bunny.icu

Spring事务
Spring事务
扫描二维码继续阅读
2018-08-20