String s = "INSERT INTO table (aa, bb ,cc) values (?,?,?), (?,?,?) , (?,?,?) , (?,?,?)...."
y así tantas veces como filas queramos meter. Todo esto se podría automatizar con un método que devolviera ese string automáticamente pasándole el número de filas que quisiéramos (escrito rápido y sin mucha comprobación):
public String createInsert(int rows){
String s = "INSERT INTO table (aa, bb, cc) values ";
for(int i = 0; i < rows; i++){
s += "(?,?,?),"
}
//Aquí habría que quitar la última coma
}
Pero hoy, la misma persona que me preguntó me informa que todo esto ya está preparado en Java y que se puede hacer de manera mucho más sencilla... así que aquí dejo una mejor solución (lo de antes no eran más que indagaciones):
String s = "INSERT INTO table (aa, bb ,cc) values (?,?,?)"
PreparedStatement st = connection.prepareStatement(s);
int rows = 20;
for(int i = 0; i < rows; i++){ st.setString("a string") //or whatever value: int, date, null
st.setString("a string") //or whatever value: int, date, null
st.setString("a string") //or whatever value: int, date, null
st.addBatch(); //añadir una fila
}
st.executeBatch();
Mucho más eficaz, los tiempos son mucho mejor que haciendo un insert cada vez. Gracias!
ResponderEliminar