【问题标题】:spring transaction management with jdbctemplate使用 jdbctemplate 进行春季事务管理
【发布时间】:2017-08-11 09:23:53
【问题描述】:

我正在使用 jdbctemplate 运行一个 java 项目,其中更新 2000 条记录,批量大小为 500 条记录。

既然我使用的是单个更新查询,如果我使用 Spring 事务管理,应用程序会有改进吗?

【问题讨论】:

    标签: java spring jdbctemplate spring-transactions


    【解决方案1】:

    它绝对可以帮助你。您可以在带有 @Transactional 注释的 Java 方法中一一进行 500 条记录的批量调用。这样,如果任何更新失败,spring 将回滚整个操作。

    P.S:我没有指定任何必须指定事务管理器的 XML 配置。您可以添加一个满足您需求的合适的。

    【讨论】:

      【解决方案2】:

      这取决于您的要求。如果2000条记录必须是常量,那么你必须使用事务管理,如果没有,你可以每次处理一条记录。

      【讨论】:

      • 不知道你是否理解我的问题
      【解决方案3】:

      据我所知,这将有助于提高性能,因为代码只会访问数据库一次

      即使我建议使用

      @Override
      public <S extends Classname> Iterable<S> save(Iterable<S> arg0);
      

      不使用 jdbcTemplate 或事务管理将列表中的实体直接保存到数据库中

      【讨论】:

      • 您的意思是即使我以 500 的批处理大小执行 jdbcTemplate.update(),所有 2000 条记录也只会访问数据库一次?另外,您能否详细说明您的建议?
      • @ankitjava 我的建议主要是使用 PagingAndSortingRepository 接口
      • public interface ClassRepository extends PagingAndSortingRepository&lt;ClassEntity, String&gt; { @Override public &lt;S extends ClassName&gt; Iterable&lt;S&gt; save(Iterable&lt;S&gt; arg0); }
      猜你喜欢
      • 1970-01-01
      • 2011-04-22
      • 2011-01-21
      • 2014-02-19
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 2017-08-19
      • 2014-08-10
      相关资源
      最近更新 更多