【发布时间】:2017-08-11 09:23:53
【问题描述】:
我正在使用 jdbctemplate 运行一个 java 项目,其中更新 2000 条记录,批量大小为 500 条记录。
既然我使用的是单个更新查询,如果我使用 Spring 事务管理,应用程序会有改进吗?
【问题讨论】:
标签: java spring jdbctemplate spring-transactions
我正在使用 jdbctemplate 运行一个 java 项目,其中更新 2000 条记录,批量大小为 500 条记录。
既然我使用的是单个更新查询,如果我使用 Spring 事务管理,应用程序会有改进吗?
【问题讨论】:
标签: java spring jdbctemplate spring-transactions
它绝对可以帮助你。您可以在带有 @Transactional 注释的 Java 方法中一一进行 500 条记录的批量调用。这样,如果任何更新失败,spring 将回滚整个操作。
P.S:我没有指定任何必须指定事务管理器的 XML 配置。您可以添加一个满足您需求的合适的。
【讨论】:
这取决于您的要求。如果2000条记录必须是常量,那么你必须使用事务管理,如果没有,你可以每次处理一条记录。
【讨论】:
据我所知,这将有助于提高性能,因为代码只会访问数据库一次
即使我建议使用
@Override
public <S extends Classname> Iterable<S> save(Iterable<S> arg0);
不使用 jdbcTemplate 或事务管理将列表中的实体直接保存到数据库中
【讨论】:
public interface ClassRepository extends PagingAndSortingRepository<ClassEntity, String> { @Override public <S extends ClassName> Iterable<S> save(Iterable<S> arg0); }