Spring的JdbcTemplate和事务

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

我的代码布局如下所示:

我将有一个UserDao,它将被注入到我的UserService中,然后我的控制器将在UserService中的方法上进行调用。

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

默认情况下,我必须在配置文件中执行任何操作还是在@Transaction任何地方使用注释?

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

userService.updateUser(user);

accountService.updateXXX(...);

回答:

是的,JdbcTemplate不能替代事务管理。您仍然可以从数据库事务中受益,因此userService.updateUser可以在 数据库

事务中进行操作,但是如果accountService.updateXXX失败,userService.updateUser不会 回滚。

如果您不想使用AOP,则可以改用TransactionTemplate。请参阅Spring参考文档中的程序化事务管理。

我之前看到的一种模式是MVC控制器类调用业务服务,该业务服务封装了该操作。然后可以注释商务类的方法@Transactional

以上是 Spring的JdbcTemplate和事务 的全部内容, 来源链接: utcz.com/qa/416869.html

回到顶部