Spring的JDBCTemplate批量更新的性能问题
这两天偶然发现了一个JDBCTemplate批量更新的性能问题,问题是这样的一次性批量删除并且插入3000条记录,居然用了400s我也是被吓到了。我也看了一下代码确实用的是jdbcTemplate的batchUpdate方法,用法都没有错,正常执行SQL批量更新3000条数据应该也是秒级的,但是不清楚为什么使用jdbcTemplate的性能会和预期差这么多呢,后来经过反复测试才发现原来是参数类型惹的祸,具体请看下面的代码片段。
修改前的jdbcTemplate.batchUpdate代码片段
public void batchUpdateAcl(List<Auth> authBeans) {
List<Object[]> deleteParams = new ArrayList<Object[]>();
List<Object[]> insertParams = new ArrayList<Object[]>();
for (Auth auth : authBeans) {
String resourceID = auth.getResourceID();
String targetID = auth.getTargetID();
String targetType = auth.getType() == null