Estoy realizando una inserción por lotes JDBC (insertando 1000 filas de a la vez) cada vez que se ejecuta mi programa. Pero no soy capaz de manejar la excepción arrojada por algunos de los registros correctamente.JDBC Manejo de excepción de inserción por lotes
Supongamos que el 100º registro de 1000 registros arroja una excepción debido a que los datos no válidos o el tamaño de algún valor exceden el tamaño de la columna. Una vez que se ha producido la excepción, los registros restantes no se insertan y el programa falla entre.
Lo que quiero es que incluso si el 100º registro es una excepción, las inserciones restantes deben suceder como de costumbre antes de que termine mi programa.
No puedo entender cómo lograr esto. Por favor recomiende.
EDIT:
Aquí es un ejemplo de código que estoy utilizando en mi aplicación para la inserción por lotes. Supongamos que el conjunto de resultados tiene aproximadamente 1000 registros.
PreparedStatement ps = null;
while(rs.next()){
//Retrieve the value and set it to a Prepared statement
String name = rs.getString("Name");
int age = rs.getInt("Age");
ps.setInt(1, age);
ps.setString(2, name);
//Finally invoke addBatch
ps.addBatch();
}
//Finally call the executeBatch method
ps.executeBatch();
Si el registro número 100 está lanzando una excepción, entonces yo quiero para desencadenar el proceso sólo a partir del registro demasiado 1000a 100a. ¿Hay alguna manera de hacer esto para que pueda reiniciar el proceso desde el registro que arrojó la excepción en adelante hasta el final otra vez? ¿Cómo lograr esto?
¿Y su código es? – Alfabravo