List of usage examples for org.springframework.jdbc.core BatchPreparedStatementSetter BatchPreparedStatementSetter
BatchPreparedStatementSetter
From source file:anyframe.core.query.impl.QueryServiceImpl.java
/** * ? SQL? Spring JdbcTemplate? batchUpdate Insert, Update, * Delete Batch . SQL? isDynamic? false? ) * /*from w ww. j a v a2 s . c o m*/ * @param sql * static query statement. * @param targets * object of class which is matched with specified table in XML * files. is the List type of Object Array. * @return an array of the number of rows affected by each statement */ protected int[] batchStaticExecutor(final String sql, final List targets) { return jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { public int getBatchSize() { return targets.size(); } // Spring JdbcTemplate? ? ? // callback method public void setValues(PreparedStatement ps, int index) throws SQLException { Object[] args = (Object[]) targets.get(index); // Set the value for the parameter for (int i = 0; i < args.length; i++) { StatementCreatorUtils.setParameterValue(ps, i + 1, SqlTypeValue.TYPE_UNKNOWN, null, args[i]); } } }); }
From source file:com.taobao.tddl.common.sync.RowBasedReplicationExecutor.java
/** * jdbcdelete//from w ww.j a v a 2s . co m */ public static void batchDeleteSyncLog(Collection<RowBasedReplicationContext> contexts) { long timeused, time0 = System.currentTimeMillis(); String sqlpattern = "delete from sync_log_{0} where id = ?"; /** * RowBasedReplicationContextupdateSql */ Map<JdbcTemplate, Map<String/*logSQL*/, List<RowBasedReplicationContext>>> sortedContexts = buildSortedContexts( contexts, sqlpattern.toString()); for (Map.Entry<JdbcTemplate, Map<String, List<RowBasedReplicationContext>>> e0 : sortedContexts .entrySet()) { JdbcTemplate jt = e0.getKey(); for (Map.Entry<String, List<RowBasedReplicationContext>> e : e0.getValue().entrySet()) { final List<RowBasedReplicationContext> endContexts = e.getValue(); BatchPreparedStatementSetter setter = new BatchPreparedStatementSetter() { public int getBatchSize() { return endContexts.size(); } public void setValues(PreparedStatement ps, int i) throws SQLException { RowBasedReplicationContext context = endContexts.get(i); ps.setString(1, context.getSyncLogId()); } }; jt.batchUpdate(e.getKey(), setter); if (log.isDebugEnabled()) { log.debug("[batchDeleteSyncLog], sql = [" + e.getKey() + "], batch size=" + endContexts.size()); } } } timeused = System.currentTimeMillis() - time0; log.warn(contexts.size() + " replication logs deleted, time used:" + timeused); Monitor.add(Monitor.KEY1, Monitor.KEY2_SYNC, Monitor.KEY3_BatchDeleteSyncLog, contexts.size(), timeused); }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void insertWoonplaatsen(final List<Woonplaats> woonplaatsen) throws DAOException { try {//from w ww . j av a 2s.co m jdbcTemplate.batchUpdate("insert into bag_woonplaats (" + "bag_woonplaats_id," + "aanduiding_record_inactief," + "aanduiding_record_correctie," + "woonplaats_naam," + "woonplaats_geometrie," + "officieel," + "begindatum_tijdvak_geldigheid," + "einddatum_tijdvak_geldigheid," + "in_onderzoek," + "bron_documentdatum," + "bron_documentnummer," + "woonplaats_status" + ") values (?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setLong(1, woonplaatsen.get(i).getIdentificatie()); ps.setInt(2, woonplaatsen.get(i).getAanduidingRecordInactief().ordinal()); ps.setLong(3, woonplaatsen.get(i).getAanduidingRecordCorrectie()); ps.setString(4, woonplaatsen.get(i).getWoonplaatsNaam()); ps.setString(5, woonplaatsen.get(i).getWoonplaatsGeometrie()); ps.setInt(6, woonplaatsen.get(i).getOfficieel().ordinal()); ps.setTimestamp(7, new Timestamp(woonplaatsen.get(i).getBegindatumTijdvakGeldigheid().getTime())); if (woonplaatsen.get(i).getEinddatumTijdvakGeldigheid() == null) ps.setNull(8, Types.TIMESTAMP); else ps.setTimestamp(8, new Timestamp( woonplaatsen.get(i).getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(9, woonplaatsen.get(i).getInOnderzoek().ordinal()); ps.setDate(10, new Date(woonplaatsen.get(i).getDocumentdatum().getTime())); ps.setString(11, woonplaatsen.get(i).getDocumentnummer()); ps.setInt(12, woonplaatsen.get(i).getWoonplaatsStatus().ordinal()); } @Override public int getBatchSize() { return woonplaatsen.size(); } }); } catch (DataAccessException e) { throw new DAOException("Error inserting woonplaatsen", e); } }
From source file:info.raack.appliancelabeler.data.JDBCDatabase.java
@Transactional public void storeAlgorithmPredictions(EnergyMonitor energyMonitor, final Map<Integer, AlgorithmPredictions> allAlgorithmPredictions) { for (final Integer algorithmId : allAlgorithmPredictions.keySet()) { final List<ApplianceStateTransition> detectedStateTransitions = allAlgorithmPredictions.get(algorithmId) .getStateTransitions();/*from w ww.j ava 2 s. c o m*/ for (ApplianceStateTransition transition : detectedStateTransitions) { if (transition.getUserAppliance().getId() == -1) { // save the user appliance addUserAppliance(energyMonitor, transition.getUserAppliance()); } } storeUserOnOffLabels(detectedStateTransitions); } for (final Integer algorithmId : allAlgorithmPredictions.keySet()) { for (final UserAppliance userAppliance : allAlgorithmPredictions.get(algorithmId).getEnergyTimesteps() .keySet()) { final List<EnergyTimestep> energyTimesteps = allAlgorithmPredictions.get(algorithmId) .getEnergyTimesteps().get(userAppliance); jdbcTemplate.batchUpdate(insertEnergyTimesteps, new BatchPreparedStatementSetter() { public int getBatchSize() { return energyTimesteps.size(); } @Override public void setValues(PreparedStatement rs, int i) throws SQLException { EnergyTimestep energyTimestep = energyTimesteps.get(i); rs.setInt(1, algorithmId); rs.setInt(2, userAppliance.getId()); if (energyTimestep.getStartTime().getTime() >= 1289106000000L) { int k = 4; } rs.setLong(3, energyTimestep.getStartTime().getTime()); rs.setLong(4, energyTimestep.getEndTime().getTime()); rs.setInt(5, (int) energyTimestep.getEnergyConsumed()); } }); } } }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void insertOpenbareRuimten(final List<OpenbareRuimte> openbareRuimten) throws DAOException { try {//from w w w . j av a2s .c o m jdbcTemplate.batchUpdate("insert into bag_openbare_ruimte (" + "bag_openbare_ruimte_id," + "aanduiding_record_inactief," + "aanduiding_record_correctie," + "openbare_ruimte_naam," + "officieel," + "begindatum_tijdvak_geldigheid," + "einddatum_tijdvak_geldigheid," + "in_onderzoek," + "openbare_ruimte_type," + "bron_documentdatum," + "bron_documentnummer," + "openbareruimte_status," + "bag_woonplaats_id," + "verkorte_openbare_ruimte_naam" + ") values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setLong(1, openbareRuimten.get(i).getIdentificatie()); ps.setInt(2, openbareRuimten.get(i).getAanduidingRecordInactief().ordinal()); ps.setLong(3, openbareRuimten.get(i).getAanduidingRecordCorrectie()); ps.setString(4, openbareRuimten.get(i).getOpenbareRuimteNaam()); ps.setInt(5, openbareRuimten.get(i).getOfficieel().ordinal()); ps.setTimestamp(6, new Timestamp( openbareRuimten.get(i).getBegindatumTijdvakGeldigheid().getTime())); if (openbareRuimten.get(i).getEinddatumTijdvakGeldigheid() == null) ps.setNull(7, Types.TIMESTAMP); else ps.setTimestamp(7, new Timestamp( openbareRuimten.get(i).getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(8, openbareRuimten.get(i).getInOnderzoek().ordinal()); ps.setInt(9, openbareRuimten.get(i).getOpenbareRuimteType().ordinal()); ps.setDate(10, new Date(openbareRuimten.get(i).getDocumentdatum().getTime())); ps.setString(11, openbareRuimten.get(i).getDocumentnummer()); ps.setInt(12, openbareRuimten.get(i).getOpenbareruimteStatus().ordinal()); ps.setLong(13, openbareRuimten.get(i).getGerelateerdeWoonplaats()); ps.setString(14, openbareRuimten.get(i).getVerkorteOpenbareRuimteNaam()); } @Override public int getBatchSize() { return openbareRuimten.size(); } }); } catch (DataAccessException e) { throw new DAOException("Error inserting openbare ruimten", e); } }
From source file:com.hp.avmon.config.service.AgentManageService.java
/** * ?/*from w w w. j a v a 2 s.co m*/ * @param agentId * @param ampInstId * @param selectedids * @return */ private boolean changePolicySchedule(String agentId, String ampInstId, final List<Map<String, String>> schedules, String kpiGroups) { boolean result = false; String updateSql = "update TD_AVMON_AMP_POLICY set SCHEDULE = ? where agent_id = '" + agentId + "' and AMP_INST_ID = '" + ampInstId + "' and KPI_GROUP = ?"; String updateOtherSql = "update TD_AVMON_AMP_POLICY set SCHEDULE = '" + NOT_EXISTS_DATE + "' where agent_id = '" + agentId + "' and AMP_INST_ID = '" + ampInstId + "' and KPI_GROUP not in ('" + kpiGroups + "')"; BatchPreparedStatementSetter setter = new BatchPreparedStatementSetter() { @Override public int getBatchSize() { return schedules.size(); } @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setString(1, schedules.get(i).get("schedule")); ps.setString(2, schedules.get(i).get("kpiGroup")); } }; int[] cnt = jdbcTemplate.batchUpdate(updateSql, setter); if (cnt.length > 0) { try { jdbcTemplate.execute(updateOtherSql); logger.debug("=================updateOtherSql===========" + updateOtherSql); jdbcTemplate.getDataSource().getConnection().commit(); result = true; } catch (Exception e) { logger.error(e); logger.error("========updatePolicySchedule===========policy"); return false; } } return result; }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void insertNummeraanduidingen(final List<Nummeraanduiding> nummeraanduidingen) throws DAOException { try {/*from ww w . j a v a 2 s . co m*/ jdbcTemplate.batchUpdate("insert into bag_nummeraanduiding (" + "bag_nummeraanduiding_id," + "aanduiding_record_inactief," + "aanduiding_record_correctie," + "huisnummer," + "officieel," + "huisletter," + "huisnummertoevoeging," + "postcode," + "begindatum_tijdvak_geldigheid," + "einddatum_tijdvak_geldigheid," + "in_onderzoek," + "type_adresseerbaar_object," + "bron_documentdatum," + "bron_documentnummer," + "nummeraanduiding_status," + "bag_woonplaats_id," + "bag_openbare_ruimte_id" + ") values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setLong(1, nummeraanduidingen.get(i).getIdentificatie()); ps.setInt(2, nummeraanduidingen.get(i).getAanduidingRecordInactief().ordinal()); ps.setLong(3, nummeraanduidingen.get(i).getAanduidingRecordCorrectie()); ps.setInt(4, nummeraanduidingen.get(i).getHuisnummer()); ps.setInt(5, nummeraanduidingen.get(i).getOfficieel().ordinal()); if (nummeraanduidingen.get(i).getHuisletter() == null) ps.setNull(6, Types.VARCHAR); else ps.setString(6, nummeraanduidingen.get(i).getHuisletter()); if (nummeraanduidingen.get(i).getHuisnummertoevoeging() == null) ps.setNull(7, Types.VARCHAR); else ps.setString(7, nummeraanduidingen.get(i).getHuisnummertoevoeging()); if (nummeraanduidingen.get(i).getPostcode() == null) ps.setNull(8, Types.VARCHAR); else ps.setString(8, nummeraanduidingen.get(i).getPostcode()); ps.setTimestamp(9, new Timestamp( nummeraanduidingen.get(i).getBegindatumTijdvakGeldigheid().getTime())); if (nummeraanduidingen.get(i).getEinddatumTijdvakGeldigheid() == null) ps.setNull(10, Types.TIMESTAMP); else ps.setTimestamp(10, new Timestamp( nummeraanduidingen.get(i).getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(11, nummeraanduidingen.get(i).getInOnderzoek().ordinal()); ps.setInt(12, nummeraanduidingen.get(i).getTypeAdresseerbaarObject().ordinal()); ps.setDate(13, new Date(nummeraanduidingen.get(i).getDocumentdatum().getTime())); ps.setString(14, nummeraanduidingen.get(i).getDocumentnummer()); ps.setInt(15, nummeraanduidingen.get(i).getNummeraanduidingStatus().ordinal()); if (nummeraanduidingen.get(i).getGerelateerdeWoonplaats() == null) ps.setNull(16, Types.INTEGER); else ps.setLong(16, nummeraanduidingen.get(i).getGerelateerdeWoonplaats()); ps.setLong(17, nummeraanduidingen.get(i).getGerelateerdeOpenbareRuimte()); } @Override public int getBatchSize() { return nummeraanduidingen.size(); } }); } catch (DataAccessException e) { throw new DAOException("Error inserting nummeraanduidingen", e); } }
From source file:com.taobao.tddl.common.sync.RowBasedReplicationExecutor.java
/** * jdbcupdate//from ww w . j a va2s.c o m */ public static void batchUpdateSyncLog(Collection<RowBasedReplicationContext> contexts, final long extraPlusTime) { long timeused, time0 = System.currentTimeMillis(); String sqlpattern = "update sync_log_{0} set next_sync_time=? where id = ?"; /** * RowBasedReplicationContextupdateSql */ Map<JdbcTemplate, Map<String/*logSQL*/, List<RowBasedReplicationContext>>> sortedContexts = buildSortedContexts( contexts, sqlpattern.toString()); for (Map.Entry<JdbcTemplate, Map<String, List<RowBasedReplicationContext>>> e0 : sortedContexts .entrySet()) { JdbcTemplate jt = e0.getKey(); for (Map.Entry<String, List<RowBasedReplicationContext>> e : e0.getValue().entrySet()) { final List<RowBasedReplicationContext> endContexts = e.getValue(); BatchPreparedStatementSetter setter = new BatchPreparedStatementSetter() { public int getBatchSize() { return endContexts.size(); } public void setValues(PreparedStatement ps, int i) throws SQLException { RowBasedReplicationContext context = endContexts.get(i); ps.setTimestamp(1, getNextSyncTime(context, extraPlusTime)); ps.setString(2, context.getSyncLogId()); } }; jt.batchUpdate(e.getKey(), setter); if (log.isDebugEnabled()) { log.debug("[batchUpdateSyncLog], sql = [" + e.getKey() + "], batch size=" + endContexts.size()); } } } timeused = System.currentTimeMillis() - time0; log.warn(contexts.size() + " replication logs updated, time used:" + timeused); Monitor.add(Monitor.KEY1, Monitor.KEY2_SYNC, Monitor.KEY3_BatchUpdateSyncLog, contexts.size(), timeused); }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void insertPanden(final List<Pand> panden) throws DAOException { try {/* w w w .ja v a 2 s . c om*/ jdbcTemplate.batchUpdate("insert into bag_pand (" + "bag_pand_id," + "aanduiding_record_inactief," + "aanduiding_record_correctie," + "officieel," + "pand_geometrie," + "bouwjaar," + "pand_status," + "begindatum_tijdvak_geldigheid," + "einddatum_tijdvak_geldigheid," + "in_onderzoek," + "bron_documentdatum," + "bron_documentnummer" + ") values (?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setLong(1, panden.get(i).getIdentificatie()); ps.setInt(2, panden.get(i).getAanduidingRecordInactief().ordinal()); ps.setLong(3, panden.get(i).getAanduidingRecordCorrectie()); ps.setInt(4, panden.get(i).getOfficieel().ordinal()); ps.setString(5, panden.get(i).getPandGeometrie()); ps.setInt(6, panden.get(i).getBouwjaar()); ps.setString(7, panden.get(i).getPandStatus()); ps.setTimestamp(8, new Timestamp(panden.get(i).getBegindatumTijdvakGeldigheid().getTime())); if (panden.get(i).getEinddatumTijdvakGeldigheid() == null) ps.setNull(9, Types.TIMESTAMP); else ps.setTimestamp(9, new Timestamp(panden.get(i).getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(10, panden.get(i).getInOnderzoek().ordinal()); ps.setDate(11, new Date(panden.get(i).getDocumentdatum().getTime())); ps.setString(12, panden.get(i).getDocumentnummer()); } @Override public int getBatchSize() { return panden.size(); } }); } catch (DataAccessException e) { throw new DAOException("Error inserting panden", e); } }
From source file:com.hp.avmon.config.service.AgentManageService.java
/** * ?AMP?//ww w. j a v a 2 s .c om * @param ampListMapF * @param status * @return */ private boolean updateNormalAMPStatus(final List<Map<String, String>> ampListMapF, final int status) { String updateSql = "UPDATE TD_AVMON_AMP_INST SET STATUS = ? WHERE AMP_INST_ID = ? AND AMP_ID = ? AND AGENT_ID = ?"; int[] updateCount = jdbcTemplate.batchUpdate(updateSql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement preparedStatement, int i) throws SQLException { Map<String, String> stringMap = ampListMapF.get(i); preparedStatement.setInt(1, status); preparedStatement.setString(2, stringMap.get("ampInstId")); preparedStatement.setString(3, stringMap.get("ampId")); preparedStatement.setString(4, stringMap.get("agentId")); } @Override public int getBatchSize() { return ampListMapF.size(); //To change body of implemented methods use File | Settings | File Templates. } }); if (updateCount.length == ampListMapF.size()) return true; return false; }