Download Bases de datos
Document related concepts
no text concepts found
Transcript
Aplicaciones de Escritorio Acceso a Bases de Datos MySQL con Java Disertantes: Ing. Rasjido, Jose. AdeS Montenegro, Cristian. Escuela de Informática 2013 - UNPA UACO API JDBC JDBC proporciona a las aplicaciones Java un mecanismo uniforme para el acceso a datos. Consiste en la utilización de un conjunto de clases (API JDBC) que disponen de una serie de métodos para operar con la base de datos. Escuela de Informática 2013 - UNPA UACO API JDBC Los métodos proporcionados por JDBC, dirigen todas las peticiones hacia un software intermediario conocido como Driver JDBC. La misión del Driver JDBC es traducir las llamadas o invocaciones a ordenes nativas del Gestor de Base de Datos. Escuela de Informática 2013 - UNPA UACO API JDBC Aplicación JDBC La principal ventaja que ofrece este sistema es que la aplicación se independiza del tipo de Base de Datos utilizado. Driver JDBC BD Escuela de Informática 2013 - UNPA UACO API JDBC Las clases e interfaces que forman parte de este API se encuentran en el paquete java.sql. Clase / Interface Función DriverManager Establece conexiones con la base de datos a través del Driver. Connection Representa una conexión con la base de datos. Statement Ejecución de consultas SQL. PreparedStatement Ejecución de consultas preparadas y procedimientos almacenados. ResultSet Manipulación de registros de consultas de tipo Select. ResultSetMetadata Proporciona información sobre la estructura de los datos. Escuela de Informática 2013 - UNPA UACO API JDBC Pasos para acceder a una base de datos. Conexión con la base de datos. Ejecución de consultas. Manipulación de registros. Cierre de la conexión. Escuela de Informática 2013 - UNPA UACO API JDBC Conexión con la Base de Datos. Para establecer una conexión se requieren dos pasos: Carga del driver. Creación de la conexión. Escuela de Informática 2013 - UNPA UACO API JDBC Carga del Driver. Mediante esta acción se prepara el driver JDBC para que pueda ser utilizado mediante el método estático forName() de la clase java.lang.Class, cuyo formato es: Class.forName(String clase_driver) Este método localiza, lee y enlaza dinámicamente el driver, devolviendo un objeto Class asociado a la clase indicada. Escuela de Informática 2013 - UNPA UACO API JDBC La siguiente instrucción realiza la carga del driver puente JDBC-ODBC proporcionado por Sun: Class.forName(“com.mysql.jdbc.Driver”) El método forName() puede provocar una excepción de tipo ClassNotFoundException. Escuela de Informática 2013 - UNPA UACO API JDBC Creación de la conexión. La conexión se realiza mediante el método estático getConnection() de la clase DriverManager. Connection getConnection(String url) La cadena url representa la dirección de la base de datos y su formato es: jdbc:subprotocolo:base_datos donde subprotocolo depende del tipo de driver utilizado y base_datos es el nombre de la base de datos. Escuela de Informática 2013 - UNPA UACO API JDBC El código necesario para establecer la conexión sería el siguiente: Class.forName(“com.mysql.jdbc.Driver”); Connection conexión = DriverManager.getConnection(“jdbc:mysql://localhost/ cursojava”, “user”, “pass”); El método getConnection() puede generar una excepción del tipo SQLException. Escuela de Informática 2013 - UNPA UACO API JDBC Ejecución de consultas. Las consultas SQL se manejan a través de un objeto que implementan la interfaz Statement, cuya creación se realiza mediante el método createStatement() de la interfaz Connection: Statement st; st = conexión.createStatement(); Esta operación también puede generar una excepción del tipo SQLException. Escuela de Informática 2013 - UNPA UACO API JDBC La interfaz Statement proporciona diversos métodos para enviar una consulta SQL a través de la conexión: boolean execute(String sql). Envía a la base de datos la consulta SQL proporcionada como parámetro. Si se trata de una consulta de acción (Insert, Update o Delete), el método devolverá false indicando que no se generan resultados. Cuando es una consulta de selección (Select), el método devolverá True. Escuela de Informática 2013 - UNPA UACO API JDBC int executeUpdate(String sql). Envía una consulta de acción a la base de datos, devolviendo el número de registros afectados por la acción. ResulSet executeQuery(String sql). Envía una consulta de selección de registros a la base de datos, devolviendo un objeto ResulSet para su manipulación. Los tres métodos pueden generar una excepción del tipo SQLException si se produce un error. Escuela de Informática 2013 - UNPA UACO API JDBC Cierre de la conexión. El cierre de las conexiones realizadas es importante para poder liberar los recursos de memoria y CPU. Se debe hacer mediante el método close(). conexion.close(); Esta operación también puede generar una excepción del tipo SQLException. Escuela de Informática 2013 - UNPA UACO Referencias Programador Certificado Java 2, segunda edición. Antonio J., y Martin Sierra. Alfaomega-RaMa. FIN Escuela de Informática 2013 - UNPA UACO