Cómo almacenar el tiempo cuando Spring usa jdbctemplate para implementar la inserción por lotes
Copiar código
/ El primero es
PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) arroja SQLException;
Entre ellos, autoGenerateKeys tiene dos valores opcionales: Statement.RETURN_GENERATED_KEYS, Statement.NO_GENERATED_KEYS.
// El segundo es
PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
// El tercero es
PreparedStatement prepareStatement(String sql, String[] columnNames) lanza SQLException;
Copiar código
Copiar código
//Insertar instancias de personas en lotes , Devuelve cada valor de clave principal del registro insertado
public int[] insert(List
String sql = "insertar en valores de test_table(nombre) ( ?)" ;
int i = 0 ;
int rowCount = personas.size() ;
int[] claves = nuevo int[rowCount]
DataSource ds = SimpleDBSource.getDB()
Conexión conn = ds.getConnection() ;
// Obtener el nombre de la columna de clave principal generada automáticamente Valor clave
String[] columnNames= {"id"} ;
PreparedStatement pstmt = conn.prepareStatement(sql, columnNames);
Persona p = null ;
for (i = 0 ; i < rowCount ; i++){
p = personas.get(i) ;
pstmt.setString(1, p.getName())
pstmt.addBatch();
}
pstmt.executeBatch()
/Get; el conjunto de resultados de valores de clave primaria generados automáticamente
ResultSet rs = pstmt.getGeneratedKeys()
ResultSet rs = pstmt.getGeneratedKeys()
ResultSet; rs = pstmt.getGeneratedKeys()getGeneratedKeys() ;
mientras(rs.next() && i < rowCount){
claves[i] = rs.getInt(1) ;
i++ ;
}
claves de retorno ;
}
Copiar código
.