PreparedStatement ps = c.prepareStatement("SELECT * FROM tabla");
ResultSet rs = ps.executeQuery();
//Podemos usar ps.executeUpdate();
//para DDL o SQL de actualización y este devuelve un entero con lo que paso
Lo divertido de un PS no es realmente esto, sino las consultas parametrizadas.
try {
PreparedStatement ps = c.prepareStatement("SELECT * FROM tabla WHERE id=?");
ps.setInt(1, 9);
//Igualmente puede utilizarse setString, etc
ResultSet rs = ps.executeQuery();
} catch(Exception e) {
System.out.println("Error en la consulta");
}
Las consultas parametrizadas deberían utilizarse siempre que se actualizan datos a una base de datos para evitar SQLInjection y otros problemas como carácteres extraños y cosas por el estilo.
La clase CallableStatement nos permite tener acceso a procedimientos almacenados en la base de datos que se hayan definido anteriormente. Por ejemplo:
try {
CallableStatement cs = c.prepareCall("{call getDailyTotal (?, ?)}");
cs.setInt(1, 7);
cs.getString(2, "Hola");
} catch(Exception e) {
System.out.println("Error de DB");
}
Sin mayores detalles así funciona. Vamos ahora a terminar con JDBC hablando de las transacciones. Estas se utilizan para crear acciones atómicas sobre la base de datos.
try {
c.setAutoCommit(false);
c.prepareStatement("SQL 1").executeUpdate();
c.prepareStatement("SQL 2").executeUpdate();
c.prepareStatement("SQL 3").executeUpdate();
c.commit();
} catch(Exception e) {
try {
c.rollback();
} catch (Exception exc) { ; }
System.out.println("Error de DB");
}
2 comentarios:
curry 6
golden gooses outlet
golden goose superstar
nike air max 2018
ultra boost
moncler coat
louboutin outlet
air max 2018
nike shoes
timberland shoes
o2v08i5a52 t7c30o0v47 u0d56q3v48 h7x01y7r23 d1e23c0d36 q3i64j5i76
Publicar un comentario