springboot手动回滚之后再往库里添加数据

springboot手动回滚之后再往库里添加数据,第1张

可以使用JdbcTemplate类的execute()方法重新执行SQL语句,将数据入库。通过JdbcTemplate的batchUpdate()方法,也可以实现批量添加数据的功能。SpringBoot还提供了其他的数据库 *** 作工具,如Hibernate、Mybatis等,也可以用来对数据库进行回滚 *** 作和添加数据。

spring 的事务回滚,一般都是用aop去做的,aop advice类型包括前置、后置、抛出异常和环绕。

一般需要回滚的情况多数是出了问题,包括出现了异常或者自定义的一些错误(当然自定义的错误也可以抛出自定义异常),如果采用异常或者自定义异常的的话,可以配置为代码抛出异常时,回滚事务。如果不愿意用监测异常的话,根据返回值来回滚事务,不过这种配置会麻烦一点,还不如采用异常回滚呢

单写一个接口,接口中再定义提交和回滚,在接口中判断。 比如有两个sql语句,第一个执行了后,判断是否有异常、错误。如果第一个出现异常等,那么直接就停止了。 若第一个sql执行通过了,第二个报错。那么你调用接口中的回滚就可以了。

使用Spring data jpa + mysql对Dao层的save()方法进行单元测试时,期望在测试完后进行回滚 *** 作,结果未回滚,去表里面查看,数据却成功插入。而Log日志显示已经进行了回滚 *** 作。日志如下:

将hibernatedialect配置成 hibernatedialect=orghibernatedialectMySQL5InnoDBDialect ,指定MYSQL建表的时候使用InnoDB引擎(支持事务安全),使用MySQL5InnoDBDialect方言在生成表结构的时候可以指定表的"ENGINE=InnoDB",而如果使用方言MySQL5Dialect,则在生成表结构的时候默认使用的是 ENGINE=MyISAM,该引擎不支持事务,即使程序中使用事务,也不起作用

2019-05-28

如果使用spring-test进行单元测试,它会自动回滚即@Rollback(value = true)

但是我在使用过程无论value为true/false,它都无作用

最后,因为spring没有取得事务控制,即aop没有,不能执行回滚

最后在配置文件

配置一个事务处理类:

<bean id="baseTxService" class="orgspringframeworktransactioninterceptorTransactionProxyFactoryBean" abstract="true">

<property name="transactionManager" ref="transactionManager" />

<property name="transactionAttributes">

<props>

<prop key="insert">PROPAGATION_REQUIRED</prop>

<prop key="save">PROPAGATION_REQUIRED,-Exception</prop>

<prop key="update">PROPAGATION_REQUIRED</prop>

<prop key="remove">PROPAGATION_REQUIRED</prop>

</props>

</property>

</bean>

然后在具体的业务调用中继承这个类:

<bean id="magazineManager" parent="baseTxService">

<property name="target">

<bean class="comharmonymagazineserviceimplMagazineManager">

<property name="magazineDao">

<ref bean="magazineDao" />

</property>

</bean>

</property>

</bean>

这样的话,在MagazineManager中定义的方法在执行excute时若有错就会自动回滚。

以上就是关于springboot手动回滚之后再往库里添加数据全部的内容,包括:springboot手动回滚之后再往库里添加数据、spring事务什么时候会自动回滚、spring对多个事务进行统一回滚怎么配置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9808652.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存