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