在使用 jdbctemplate.batchupdate 进行批量更新时,您可能会遇到这样的情况:where 子句不匹配,导致某些记录无法更新。以下是如何捕捉和记录这些不匹配的记录:
List<Object[]> valueList = new ArrayList<>(); // 您的更新值列表 int[] updatedRows = jdbcTemplate.batchUpdate(sql, valueList, batchSize); // 批量更新 for (int i = 0; i < updatedRows.length; i++) { if (updatedRows[i] == 0) { // 记录不匹配的记录 Object[] unmatchedRecord = valueList.get(i); System.out.println("不匹配的记录:" + Arrays.toString(unmatchedRecord)); } }
batchupdate 方法返回一个 int[] 数组,其中每个元素表示对应 sql 语句更新的记录数量。如果某个记录不匹配 where 子句,其对应的更新记录数将为 0,您可以根据此信息轻松确定未更新的记录并将其记录下来。