gpt4 book ai didi

java - Spring 的 JdbcTemplate 和事务

转载 作者:IT老高 更新时间:2023-10-28 13:51:16 28 4
gpt4 key购买 nike

使用JdbcTemplate时,需要显式配置事务吗?

我的代码布局如下所示:

我将有一个将被注入(inject)到我的 UserService 中的 UserDao,然后我的 Controller 将调用我的 UserService 中的方法。

我想让事务尽可能简单,并且我不需要多个数据库调用来跨越一个事务。

默认情况下,我是否必须在我的配置文件中做任何事情或在任何地方使用 @Transaction 注释?

现在说在我的 Controller 中我需要对我的 userService 和 accountService 进行 2 次调用,我可以以某种方式显式地将它包装在事务中吗?

userService.updateUser(user);
accountService.updateXXX(...);

最佳答案

是的,JdbcTemplate 不能替代事务管理。您仍然可以从数据库事务中受益,因此 userService.updateUser 将在 database 事务中运行,但如果 accountService.updateXXX 失败,userService .updateUser 不会回滚。

如果不想使用AOP,可以使用TransactionTemplate反而。见 programmatic transaction managementSpring Reference Documentation .

我以前见过的一种模式是 MVC Controller 类调用业务服务,该服务封装了操作。然后可以将业务类的方法注解为 @Transactional

关于java - Spring 的 JdbcTemplate 和事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12641666/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com