Necesito insertar miles de registros en la base de datos de una vez. Estoy usando la plantilla primavera JDBC en mi aplicación.¿Cómo hacer varias inserciones en la base de datos utilizando el lote de plantillas JDBC de primavera?
A continuación se muestra el código que he escrito hasta ahora que ejecuta todas las inserciones de una vez. Entonces, si tengo 10,000 usuarios, se insertan de una vez. Pero lo que quiero es ejecutarlos en lotes, por ejemplo, 500 registros en un lote, etc.
@Override
public void saveBatch(final List<Employee> employeeList) {
final int batchSize = 500;
getJdbcTemplate().batchUpdate(QUERY_SAVE,
new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i)
throws SQLException {
Employee employee = employeeList.get(i);
ps.setString(1, employee.getFirstname());
ps.setString(2, employee.getLastname());
ps.setString(3, employee.getEmployeeIdOnSourceSystem());
}
@Override
public int getBatchSize() {
return employeeList.size();
}
});
}
¿Cómo se cambia el código anterior para que en lugar de employeeList.size() como el tamaño del lote podemos tener el tamaño del lote, como dicen 500, ejecutarlos y luego al lado 500 y así sucesivamente?
Por favor ayuda.
Sé que esta pregunta es bastante viejo, pero tengo una pregunta. ¿Por qué no devolviste 500 en el método 'getBatchSize'? –