我正在尝试使用namedParameterJdbcTemplate进行批量插入。这就是我正在做的事情:
SqlParameterSource[] userSubjects = SqlParameterSourceUtils.createBatch(getStudentSubjectMap(subjectIds, user.getId()));
namedParameterJdbcTemplate.batchUpdate(QueriesUser.CREATE_STUDENT_SUBJECT_MAPPING, userSubjects);
这是我的函数,它给出了Map数组
private Map<String, Object>[] getStudentSubjectMap(List<Integer> subjectIds, String userId) {
@SuppressWarnings("unchecked")
Map<String, Object>[] maps = new HashMap[subjectIds.size()];
for(int index = 0; index < subjectIds.size(); index++) {
Map map = new HashMap<String, String>();
map.put(InfraConstants.USER_ID, userId);
map.put(InfraConstants.SUBJECT_ID, subjectIds.get(index));
maps[index] = map;
}
return maps;
}
经过大量的谷歌搜索和阅读文档后,我没有找到任何其他更好的替代方案。
我做得对吗?这是最好的方式吗?对此的任何改进都非常有帮助。