Ejemplo: utilizar PreparedStatement para obtener un ResultSet
Este es un ejemplo de utilización del método executeQuery de un objeto PreparedStatement para obtener un ResultSet.
Nota: Al utilizar los ejemplos de código, acepta los
términos de: Información sobre licencia de código y exención de responsabilidad.
import java.sql.*;
import java.util.Properties;
public class PreparedStatementExample {
public static void main(java.lang.String[] args)
{
String URL = "jdbc:db2://*local";
Connection c = null;
Statement s = null;
// Este programa crea una tabla que
// las sentencias preparadas utilizan más tarde.
try {
// Crear las propiedades de conexión.
Properties properties = new Properties ();
properties.put ("user", "userid");
properties.put ("password", "password");
// Conectar con la base de datos local.
c = DriverManager.getConnection(URL, properties);
// Crear un objeto Statement.
s = c.createStatement();
// Suprimir la tabla de prueba, si existe. Observar que
// en todo este ejemplo se presupone que la colección
// MYLIBRARY existe en el sistema.
try {
s.executeUpdate("DROP TABLE MYLIBRARY.MYTABLE");
} catch (SQLException e) {
// Continuar simplemente... es probable que la tabla no exista.
}
// Ejecutar una sentencia SQL que cree una tabla en la base de datos.
s.executeUpdate("CREATE TABLE MYLIBRARY.MYTABLE (NAME VARCHAR(20), ID INTEGER)");
} catch (SQLException sqle) {
System.out.println("El proceso de base de datos ha fallado.");
System.out.println("Razón: " + sqle.getMessage());
} finally {
// Cerrar los recursos de base de datos.
try {
if (s != null) {
s.close();
}
} catch (SQLException e) {
System.out.println("El borrado no ha podido cerrar Statement.");
}
}
// Luego, este programa usa una sentencia preparada para insertar muchas
// filas en la base de datos.
PreparedStatement ps = null;
String[] nameArray = {"Rich", "Fred", "Mark", "Scott", "Jason",
"John", "Jessica", "Blair", "Erica", "Barb"};
try {
// Crear un objeto PreparedStatement utilizado para insertar datos en la
// tabla.
ps = c.prepareStatement("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES (?, ?)");
for (int i = 0; i < nameArray.length; i++) {
ps.setString(1, nameArray[i]); // Establecer el nombre a partir de nuestra matriz.
ps.setInt(2, i+1); // Establecer el ID.
ps.executeUpdate();
}
} catch (SQLException sqle) {
System.out.println("El proceso de base de datos ha fallado.");
System.out.println("Razón: " + sqle.getMessage());
} finally {
// Cerrar los recursos de base de datos.
try {
if (ps != null) {
ps.close();
}
} catch (SQLException e) {
System.out.println("El borrado no ha podido cerrar Statement.");
}
}
// Utilizar una sentencia preparada para consultar la tabla de
// base de datos creada y devolver datos desde ella. En
// este ejemplo, el parámetro usado se ha establecido arbitrariamente
// en 5, es decir, devolver todas las filas en que el campo ID sea menor
// o igual a 5.
try {
ps = c.prepareStatement("SELECT * FROM MYLIBRARY.MYTABLE " +
"WHERE ID <= ?");
ps.setInt(1, 5);
// Ejecutar una consulta SQL en la tabla.
ResultSet rs = ps.executeQuery();
// Visualizar todos los datos de la tabla.
while (rs.next()) {
System.out.println("El empleado " + rs.getString(1) + " tiene el ID " + rs.getInt(2));
}
} catch (SQLException sqle) {
System.out.println("El proceso de base de datos ha fallado.");
System.out.println("Razón: " + sqle.getMessage());
} finally {
// Cerrar los recursos de base de datos.
try {
if (ps != null) {
ps.close();
}
} catch (SQLException e) {
System.out.println("El borrado no ha podido cerrar Statement.");
}
try {
if (c != null) {
c.close();
}
} catch (SQLException e) {
System.out.println("El borrado no ha podido cerrar Connection.");;
}
}
}
}