private List<MoneyPO> queryByIds(List<Integer> ids) { StringBuilderstrIds=newStringBuilder(); for (Integer id : ids) { strIds.append(id).append(","); } return jdbcTemplate.query("select id, `name`, money, is_deleted as isDeleted, unix_timestamp(create_at) as " + "created, unix_timestamp(update_at) as updated from money where id in (" + strIds.substring(0, strIds.length() - 1) + ")", newBeanPropertyRowMapper<>(MoneyPO.class)); }
a. 纯sql更新
1 2 3 4 5 6
// 批量修改, // 执行多条sql的场景 int[] ans = jdbcTemplate .batchUpdate("update money set money=1300 where id =10", "update money set money=1300 where id = 11"); System.out.println( "batch update by sql ans: " + Arrays.asList(ans) + " | db: " + queryByIds(Arrays.asList(10, 11)));
b. 占位sql
1 2 3 4 5
// 占位替换方式 ans = jdbcTemplate.batchUpdate("update money set money=money + ? where id = ?", Arrays.asList(newObject[]{99, 10}, newObject[]{99, 11})); System.out.println("batch update by placeHolder ans: " + Arrays.asList(ans) + " | db: " + queryByIds(Arrays.asList(10, 11)));
c. statement
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// 通过 statement ans = jdbcTemplate .batchUpdate("update money set money=money + ? where id = ?", newBatchPreparedStatementSetter() { @Override publicvoidsetValues(PreparedStatement preparedStatement, int i)throws SQLException { preparedStatement.setInt(1, 99); preparedStatement.setInt(2, i + 10); }