Comandos preparados
En Java, el interface java.sql.PreparedStatement es una subclase de java.sql.Statement y proporciona una interfaz para ejecutar sentencias SQL precompiladas en una base de datos. El objeto PreparedStatement se utiliza para realizar operaciones más complejas en una base de datos, como ejecutar consultas con parámetros.
Algunos ejemplos de cómo utilizar PreparedStatement en Java son:
Ejecutar una consulta SELECT con un parámetro:
String sql = "SELECT * FROM Employee WHERE id = ?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setInt(1, 123);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id"));
System.out.println("Nombre: " + rs.getString("name"));
System.out.println("Cargo: " + rs.getString("job"));
}
pstmt.close();
Ejecutar una sentencia INSERT con varios parámetros:
String sql = "INSERT INTO Employee (name, job, salary) VALUES (?, ?, ?)";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, "John");
pstmt.setString(2, "Developer");
pstmt.setDouble(3, 50000);
pstmt.executeUpdate();
pstmt.close();
Ejecutar una sentencia UPDATE con varios parámetros:
String sql = "UPDATE Employee SET salary = ? WHERE id = ? AND job = ?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setDouble(1, 55000);
pstmt.setInt(2, 123);
pstmt.setString(3, "Developer");
pstmt.executeUpdate();
pstmt.close();
Utilizar un PreparedStatement para ejecutar una transacción:
con.setAutoCommit(false);
String sql1 = "INSERT INTO Employee (name, job) VALUES (?, ?)";
PreparedStatement pstmt1 = con.prepareStatement(sql1);
pstmt1.setString(1, "John");
pstmt1.setString(2, "Developer");
pstmt1.executeUpdate();
String sql2 = "UPDATE Employee SET salary = ? WHERE name = ?";
PreparedStatement pstmt2 = con.prepareStatement(sql2);
pstmt2.setDouble(1, 55000);
pstmt2.setString(2, "John");
pstmt2.executeUpdate();
con.commit();