前段时间写了一个小功能,一个port对应多个userId
当插入和删除这个表里的数据时就需要用到批量更新
直接粘代码吧:
public void saveSmsPortAuth(final SmsPortAuthVo smsPortAuthVo) throws Exception {
try {
StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder.append(" INSERT INTO MCD_SMS_PORT_AUTH (PORT,USER_ID) " ) //user_id多个
.append(" VALUES (?,?)" );
final String port = smsPortAuthVo.getPort();
final String[] userId = smsPortAuthVo.getUserId();
this.getJdbcTemplate().batchUpdate(sqlBuilder.toString(), new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setString(1, port);
ps.setString(2, userId[i]);//
}
@Override
public int getBatchSize() {
return userId.length;
}
});
}catch (Exception e) {
log.error("添加短信端口外部可见用户数据异常(DAO)",e);
}
}
//定义实体类时 userId 为String数组 private String[] userId;