【问题标题】:Is Spring NamedParameterJdbcTemplate transaction-aware?Spring NamedParameterJdbcTemplate 是事务感知的吗?
【发布时间】:2018-02-23 16:25:55
【问题描述】:

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

TransactionTemplate 的文档说:

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

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

但对于NamedParameterJdbcTemplate,它只说:

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

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

这是否意味着如果我在我的应用程序中配置事务管理器,即使使用NamedParameterJdbcTemplate,我也不会在失败时得到回滚

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

【问题讨论】:

    标签: java spring transactions spring-jdbc


    【解决方案1】:

    我使用过 NamedParameterJdbcTemplate,它在生产环境中运行良好。它比使用 JdbcTemplate 有优势。

    如果同时使用了这两种方式,通过使用基于XML的配置和@Transaction注解定义自己的事务代理和边界。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多