批量插入以及數據存在重復就進行更新操作


批量插入以及數據存在重復就進行更新操作

示例:

/**
 * 批量更新
 *
 * @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();
        }
    });
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM