我正在构建一个应用程序,我想在其中使用Spring JDBC进行数据库访问,我正在尝试决定是否应该使用NamedParameterJdbcTemplate
或TransactionTemplate
。
TransactionTemplate
的文档说:
简化程序化事务划分的模板类 事务异常处理。
中心方法是#execute,支持事务代码 实现TransactionCallback接口。这个模板处理 事务生命周期和可能的异常,这两者都没有 TransactionCallback实现也不需要显式调用代码 处理交易。
但对于NamedParameterJdbcTemplate
,它只说:
带有一组基本JDBC操作的模板类,允许使用 命名参数而不是传统的'?'占位符。
此类委托给包装好的#getJdbcOperations()JdbcTemplate 一旦从命名参数替换为JDBC样式'?'占位符是 在执行时完成。
这是否意味着如果我在我的应用程序中配置一个事务管理器,即使我使用NamedParameterJdbcTemplate
如果不是那么这两个类之间的区别是什么我应该考虑选择一个而不是另一个?
答案 0 :(得分:0)
我使用了 NamedParameterJdbcTemplate ,它在生产环境中完美运行。它优于使用 JdbcTemplate 。
如果使用了这两种方式,则使用基于XML的配置和@ 事务注释定义自己的事务代理和边界。