Vous êtes sur la page 1sur 3

Ejemplo de la interfaz PreparedStatement El siguiente ejemplo de cdigo muestra cmo se insertan datos en la base de datos y cmo se consulta la base

de datos: import java.sql.*; import java.util.Properties; public class PreparedStatementExample { public static void main(java.lang.String[] args) { // Sugerencia: estos se cargan a partir de un objeto de propiedades. String DRIVER = "com.ibm.db2.jdbc.app.DB2Driver"; String URL = "jdbc:db2://*local"; // Se registra el controlador JDBC nativo. Si no se puede // registrar el controlador, la prueba no puede continuar. try { Class.forName(DRIVER); } catch (Exception e) { System.out.println("Imposible registrar el controlador."); System.out.println(e.getMessage()); System.exit(1); } Connection c = null; Statement s = null; // 1) En primer lugar, este programa maneja la tarea de crear la tabla q ue // ms adelante utilizarn las sentencias preparadas. try { // Se crean las propiedades de la conexin Properties properties = new Properties (); properties.put ("user", "userid"); properties.put ("password", "password"); // Se conecta con la base de datos de iSeries 400 local c = DriverManager.getConnection(URL, properties); // Se crea un objeto Statement. s = c.createStatement(); // Se suprime la tabla de prueba, si existe. Observe que // en todo este ejemplo se presupone que la coleccin // MYLIBRARY existe en el sistema. try { s.executeUpdate("DROP TABLE MYLIBRARY.MYTABLE"); } catch (SQLException e) { // Se contina simplemente... es probable que la tabla no exista. } // Se ejecuta una sentencia SQL que crea una tabla en la base de dat os. s.executeUpdate("CREATE TABLE MYLIBRARY.MYTABLE (NAME VARCHAR(20), I D INTEGER)"); } catch (SQLException sqle) { System.out.println("El proceso de base de datos ha fallado."); System.out.println("Razn: " + sqle.getMessage());

} finally { // Se cierran 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."); } } // 2) En segundo lugar, este programa emplea una sentencia preparada par a insertar muchas // filas en la base de datos. PreparedStatement ps = null; String[] nameArray = {"Rich", "Fred", "Mark", "Scott", "Jason", "John", "Jessica", "Blair", "Erica", "Barb"}; try { // Se crea un objeto PreparedStatement que se emplear para insertar d atos en la // tabla. ps = c.prepareStatement("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VA LUES (?, ?)"); for (int i = 0; i < nameArray.length; i++) { ps.setString(1, nameArray[i]); // Se establece el nombre a part ir de nuestra matriz. ps.setInt(2, i+1); // Se establece el ID. ps.executeUpdate(); } } catch (SQLException sqle) { System.out.println("El proceso de base de datos ha fallado."); System.out.println("Razn: " + sqle.getMessage()); } finally { // Se cierran 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."); } } // 3) Finalmente, empleamos una sentencia preparada para consultar la ta bla // n // itraria // ID sea // igual o menor que 5. try { ps = c.prepareStatement("SELECT * FROM MYLIBRARY.MYTABLE " + "WHERE ID <= ?"); en 5, lo que implica devolver todas las filas en las que el campo este ejemplo, el parmetro utilizado se ha establecido de manera arb de base de datos que hemos creado y para devolver datos de ella. E

ps.setInt(1, 5); // Se ejecuta una consulta SQL en la tabla. ResultSet rs = ps.executeQuery(); // Se visualizan 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("Razn: " + sqle.getMessage()); } finally { // Se cierran 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.") ; } } }

Vous aimerez peut-être aussi