spring 中 jdbcTemplate 中如果批量batchUpdate没有效果时,需要注意的地方

如果你用了spring的batchUpdate

public int[] BatchInsertMuser(List<Muser> list, String v_sql) {

	System.out.println("list.size()=" + list.size());
		return jdbcTemplate.batchUpdate(v_sql, new BatchPreparedStatementSetter() {
			public void setValues(PreparedStatement ps, int i) throws SQLException {
				ps.setInt(1, list.get(i).getId());
				ps.setString(2, list.get(i).getName());
				ps.setString(3, list.get(i).getEmail());
			}
			@Override
			public int getBatchSize() {
				// TODO Auto-generated method stub
				return list.size();
			}
		});
		 
}

却发现效率和没用批量更新差不多。


那么你就要注意。

你在配置mysql连接时有没有配置:

rewriteBatchedStatements=true

变成

spring.datasource.url = jdbc:mysql://192.168.15.44:3306/ml_test?useSSL=false&useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true&autoReconnect=true

这点是看的技术文章:

https://blog.csdn.net/shushugood/article/details/81005718

但是因为不可以直接转载,所以只能给大家一个链接了。

0 个评论

要回复文章请先登录注册