List of usage examples for org.springframework.jdbc.core.namedparam NamedParameterJdbcTemplate batchUpdate
@Override public int[] batchUpdate(String sql, SqlParameterSource[] batchArgs)
From source file:alfio.manager.system.DataMigrator.java
private static void performPriceMigration(String updateStatement, List<MapSqlParameterSource> data, NamedParameterJdbcTemplate jdbc) { int size = data.size(); jdbc.batchUpdate(updateStatement, data.toArray(new MapSqlParameterSource[size])); log.debug("{} records updated", size); }
From source file:org.smart.migrate.dao.impl.DefaultImportDao.java
@Override public void saveTargetData(TableSetting tableSetting, List<Map<String, Object>> targetDataList) { String sql = "INSERT INTO " + tableSetting.getTargetTable() + " (" + SettingUtils.getTargetFields(tableSetting) + ")"; sql += " VALUES (" + SettingUtils.getTargetPreparedFields(tableSetting) + ")"; NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(targetJdbcTemplate); List<MapSqlParameterSource> parameterSources = new ArrayList<MapSqlParameterSource>(); for (Map<String, Object> targetData : targetDataList) { MapSqlParameterSource psource = new MapSqlParameterSource(); psource.addValues(targetData);/*w w w . j a v a 2s . com*/ parameterSources.add(psource); } namedParameterJdbcTemplate.batchUpdate(sql, parameterSources.toArray(new MapSqlParameterSource[0])); }
From source file:org.tradex.jdbc.JDBCHelper.java
/** * Batch executes the update define in the passed sql * @param sql The sql//from w ww . ja v a 2 s . c o m * @param bindSets An array of bind value arrays * @return an array containing the numbers of rows affected by each update in the batch */ public int[] batchExecute(CharSequence sql, Object[]... bindSets) { NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(ds); SqlParameterSource[] sps = new SqlParameterSource[bindSets.length]; for (int i = 0; i < bindSets.length; i++) { sps[i] = getBinds(sql.toString().trim().toUpperCase(), bindSets[i]); } return template.batchUpdate(sql.toString(), sps); }
From source file:org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplateTests.java
public void testBatchUpdateWithPlainMap() throws Exception { final String sqlToUse = "UPDATE NOSUCHTABLE SET DATE_DISPATCHED = SYSDATE WHERE ID = ?"; final String sql = "UPDATE NOSUCHTABLE SET DATE_DISPATCHED = SYSDATE WHERE ID = :id"; final Map[] ids = new Map[2]; ids[0] = Collections.singletonMap("id", 100); ids[1] = Collections.singletonMap("id", 200); final int[] rowsAffected = new int[] { 1, 2 }; MockControl ctrlDataSource = MockControl.createControl(DataSource.class); DataSource mockDataSource = (DataSource) ctrlDataSource.getMock(); MockControl ctrlConnection = MockControl.createControl(Connection.class); Connection mockConnection = (Connection) ctrlConnection.getMock(); MockControl ctrlPreparedStatement = MockControl.createControl(PreparedStatement.class); PreparedStatement mockPreparedStatement = (PreparedStatement) ctrlPreparedStatement.getMock(); MockControl ctrlDatabaseMetaData = MockControl.createControl(DatabaseMetaData.class); DatabaseMetaData mockDatabaseMetaData = (DatabaseMetaData) ctrlDatabaseMetaData.getMock(); BatchUpdateTestHelper.prepareBatchUpdateMocks(sqlToUse, ids, null, rowsAffected, ctrlDataSource, mockDataSource, ctrlConnection, mockConnection, ctrlPreparedStatement, mockPreparedStatement, ctrlDatabaseMetaData, mockDatabaseMetaData); BatchUpdateTestHelper.replayBatchUpdateMocks(ctrlDataSource, ctrlConnection, ctrlPreparedStatement, ctrlDatabaseMetaData);//from w w w . jav a 2s . c o m JdbcTemplate template = new JdbcTemplate(mockDataSource, false); NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(template); int[] actualRowsAffected = namedParameterJdbcTemplate.batchUpdate(sql, ids); assertTrue("executed 2 updates", actualRowsAffected.length == 2); assertEquals(rowsAffected[0], actualRowsAffected[0]); assertEquals(rowsAffected[1], actualRowsAffected[1]); BatchUpdateTestHelper.verifyBatchUpdateMocks(ctrlPreparedStatement, ctrlDatabaseMetaData); }
From source file:org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplateTests.java
public void testBatchUpdateWithSqlParameterSource() throws Exception { final String sqlToUse = "UPDATE NOSUCHTABLE SET DATE_DISPATCHED = SYSDATE WHERE ID = ?"; final String sql = "UPDATE NOSUCHTABLE SET DATE_DISPATCHED = SYSDATE WHERE ID = :id"; final SqlParameterSource[] ids = new SqlParameterSource[2]; ids[0] = new MapSqlParameterSource("id", 100); ids[1] = new MapSqlParameterSource("id", 200); final int[] rowsAffected = new int[] { 1, 2 }; MockControl ctrlDataSource = MockControl.createControl(DataSource.class); DataSource mockDataSource = (DataSource) ctrlDataSource.getMock(); MockControl ctrlConnection = MockControl.createControl(Connection.class); Connection mockConnection = (Connection) ctrlConnection.getMock(); MockControl ctrlPreparedStatement = MockControl.createControl(PreparedStatement.class); PreparedStatement mockPreparedStatement = (PreparedStatement) ctrlPreparedStatement.getMock(); MockControl ctrlDatabaseMetaData = MockControl.createControl(DatabaseMetaData.class); DatabaseMetaData mockDatabaseMetaData = (DatabaseMetaData) ctrlDatabaseMetaData.getMock(); BatchUpdateTestHelper.prepareBatchUpdateMocks(sqlToUse, ids, null, rowsAffected, ctrlDataSource, mockDataSource, ctrlConnection, mockConnection, ctrlPreparedStatement, mockPreparedStatement, ctrlDatabaseMetaData, mockDatabaseMetaData); BatchUpdateTestHelper.replayBatchUpdateMocks(ctrlDataSource, ctrlConnection, ctrlPreparedStatement, ctrlDatabaseMetaData);//ww w.java 2 s . co m JdbcTemplate template = new JdbcTemplate(mockDataSource, false); NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(template); int[] actualRowsAffected = namedParameterJdbcTemplate.batchUpdate(sql, ids); assertTrue("executed 2 updates", actualRowsAffected.length == 2); assertEquals(rowsAffected[0], actualRowsAffected[0]); assertEquals(rowsAffected[1], actualRowsAffected[1]); BatchUpdateTestHelper.verifyBatchUpdateMocks(ctrlPreparedStatement, ctrlDatabaseMetaData); }
From source file:org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplateTests.java
public void testBatchUpdateWithSqlParameterSourcePlusTypeInfo() throws Exception { final String sqlToUse = "UPDATE NOSUCHTABLE SET DATE_DISPATCHED = SYSDATE WHERE ID = ?"; final String sql = "UPDATE NOSUCHTABLE SET DATE_DISPATCHED = SYSDATE WHERE ID = :id"; final SqlParameterSource[] ids = new SqlParameterSource[2]; ids[0] = new MapSqlParameterSource().addValue("id", 100, Types.NUMERIC); ids[1] = new MapSqlParameterSource().addValue("id", 200, Types.NUMERIC); final int[] sqlTypes = new int[] { Types.NUMERIC }; final int[] rowsAffected = new int[] { 1, 2 }; MockControl ctrlDataSource = MockControl.createControl(DataSource.class); DataSource mockDataSource = (DataSource) ctrlDataSource.getMock(); MockControl ctrlConnection = MockControl.createControl(Connection.class); Connection mockConnection = (Connection) ctrlConnection.getMock(); MockControl ctrlPreparedStatement = MockControl.createControl(PreparedStatement.class); PreparedStatement mockPreparedStatement = (PreparedStatement) ctrlPreparedStatement.getMock(); MockControl ctrlDatabaseMetaData = MockControl.createControl(DatabaseMetaData.class); DatabaseMetaData mockDatabaseMetaData = (DatabaseMetaData) ctrlDatabaseMetaData.getMock(); BatchUpdateTestHelper.prepareBatchUpdateMocks(sqlToUse, ids, sqlTypes, rowsAffected, ctrlDataSource, mockDataSource, ctrlConnection, mockConnection, ctrlPreparedStatement, mockPreparedStatement, ctrlDatabaseMetaData, mockDatabaseMetaData); BatchUpdateTestHelper.replayBatchUpdateMocks(ctrlDataSource, ctrlConnection, ctrlPreparedStatement, ctrlDatabaseMetaData);//from ww w . ja v a2 s . c o m JdbcTemplate template = new JdbcTemplate(mockDataSource, false); NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(template); int[] actualRowsAffected = namedParameterJdbcTemplate.batchUpdate(sql, ids); assertTrue("executed 2 updates", actualRowsAffected.length == 2); assertEquals(rowsAffected[0], actualRowsAffected[0]); assertEquals(rowsAffected[1], actualRowsAffected[1]); BatchUpdateTestHelper.verifyBatchUpdateMocks(ctrlPreparedStatement, ctrlDatabaseMetaData); }