批量插入以及数据存在重复就进行更新操作
批量插入以及数据存在重复就进行更新操作
示例:
/**
* 批量更新
*
* @param guiYangStationInfos
*/
private void updateStationInfos(String tracker, List<GuiYangStationInfoDo> guiYangStationInfos) {
//进行批量插入
String sql = "INSERT INTO guiyang_station_info (station_id,equipment_id,connector_id,station_name) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE station_id= ?,equipment_id=?,station_name=?";
jdbcTemplateStar.batchUpdate(sql, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
String stationId = guiYangStationInfos.get(i).getStationId();
String equipmentId = guiYangStationInfos.get(i).getEquipmentId();
String connectorId = guiYangStationInfos.get(i).getConnectorId();
String stationName = guiYangStationInfos.get(i).getStationName();
ps.setString(1, stationId);
ps.setString(2, equipmentId);
ps.setString(3, connectorId);
ps.setString(4, stationName);
ps.setString(5, stationId);
ps.setString(6, equipmentId);
ps.setString(7, stationName);
}
public int getBatchSize() {
logger.info("[[{}]- 第[{}]次更新充电站数据信息,状态:成功,更新条数: [{}]条]", new Object[]{tracker, ++updateTime, guiYangStationInfos.size()});
return guiYangStationInfos.size();
}
});
}
posted on 2019-04-19 16:57 zongJianKun 阅读(1571) 评论(0) 编辑 收藏 举报