Spring NamedParameterJdbcTemplate是否具有事务感知功能?

时间:2018-02-23 16:25:55

标签: java spring transactions spring-jdbc

我正在构建一个应用程序,我想在其中使用Spring JDBC进行数据库访问,我正在尝试决定是否应该使用NamedParameterJdbcTemplateTransactionTemplate

TransactionTemplate的文档说:

  

简化程序化事务划分的模板类     事务异常处理。     

中心方法是#execute,支持事务代码     实现TransactionCallback接口。这个模板处理     事务生命周期和可能的异常,这两者都没有     TransactionCallback实现也不需要显式调用代码     处理交易。

但对于NamedParameterJdbcTemplate,它只说:

  

带有一组基本JDBC操作的模板类,允许使用     命名参数而不是传统的'?'占位符。      

此类委托给包装好的#getJdbcOperations()JdbcTemplate     一旦从命名参数替换为JDBC样式'?'占位符是     在执行时完成。

这是否意味着如果我在我的应用程序中配置一个事务管理器,即使我使用NamedParameterJdbcTemplate

也不会出现故障回滚

如果不是那么这两个类之间的区别是什么我应该考虑选择一个而不是另一个?

1 个答案:

答案 0 :(得分:0)

我使用了 NamedParameterJdbcTemplate ,它在生产环境中完美运行。它优于使用 JdbcTemplate

如果使用了这两种方式,则使用基于XML的配置和@ 事务注释定义自己的事务代理和边界。