华人澳洲中文论坛

面试突击82:SpringBoot 中如何操作事务?

[复制链接]

2022-9-13 09:35:16 36 0



在 Spring Boot 中操作事务有两种形式:编程式事务或声明式事务,接上去咱们一同来看两者的详细完成。
1.编程式事务
在 Spring Boot 中完成编程式事务又有两种完成办法:
使用 TransactionTemplate 对象完成编程式事务;使用更为底层的 TransactionManager 对象完成编程式事务。它们的详细完成代码如下。
1.1 TransactionTemplate 使用
要使用 TransactionTemplate 对象需求先将 TransactionTemplate 注入到以后类中 ,而后再使用它提供的 execute 办法履行事务并前往相应的履行后果,假如顺序在履行途中泛起了异样,那末就能使用代码手动回滚事务,详细完成代码如下:


1.2 TransactionManager 使用
TransactionManager 完成编程式事务相对于费事一点,它需求使用两个对象:TransactionManager 的子类,加之 TransactionDefinition 事务定义对象,再经过调用 TransactionManager 的 getTransaction 获得并开启事务,而后调用 TransactionManager 提供的 co妹妹it 办法提交事务,或使用它的另外一个办法 rollback 回滚事务,它的详细完成代码如下:


从上述代码能够看出,使用编程式事务更为灵敏,但写法对比费事
2.声明式事务
声明式事务的完成对比简略,只需求在办法上或类上添加 @Transactional 注解便可,当参加了 @Transactional 注解就能完成在办法履行前,自动开启事务;在办法胜利履行完,自动提交事务;假如办法在履行期间,泛起了异样,那末它会自动回滚事务。
它的详细使用如下:


固然,@Transactional 反对得多参数的设置,它的参数设置列表如下:


参数的设置办法如下:


总结
本文咱们引见了两种事务的完成形式:编程式事务或声明式事务。其中编程式事务又分为两种完成:使用 TransactionTemplate 对象或更为底层的 TransactionManager 对象分别完成编程式事务,它们的优点是灵敏性更高,能够在任何代码片断上添加事务;而声明式事务的完成更为简略,只需求在类或办法上添加 @Transactional 注解便可完成事务的自动开启和提交(以及回滚)。

发表回复

您需要登录后才可以回帖 登录 | 立即注册

返回列表 本版积分规则

:
中级会员
:
论坛短信
:
未填写
:
未填写
:
未填写

主题38

帖子46

积分211

图文推荐

  • 撞穿学校栅栏害死十一岁男孩的司机不必坐牢

    一位女司机撞穿学校栅栏、害死了11岁男孩,被罚20

  • 全科医生正告花粉症时节正在好转

    全国各地的全科医生正告春季的开端标记着花粉症时

  • 新西兰总理:出世在新西兰的新纳粹Thomas S

    新西兰总理拉克森称新纳粹Thomas Sewell是坏人,

  • 新州护士和助产士承受暂时加薪3%的前提

    新州护士和助产士投票承受政府提出的暂时加薪3%以

  • 新纳粹份子如何利用“普通父母”的掩护在反

    星期天,新纳粹份子在反移民集会开端前大约一个小