La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 TEMA 8. Acceso a bases de datos Arquitectura de una aplicación que accede a una BD Arquitectura de una aplicación que accede a una BD Establecer la conexión.

Presentaciones similares


Presentación del tema: "1 TEMA 8. Acceso a bases de datos Arquitectura de una aplicación que accede a una BD Arquitectura de una aplicación que accede a una BD Establecer la conexión."— Transcripción de la presentación:

1 1 TEMA 8. Acceso a bases de datos Arquitectura de una aplicación que accede a una BD Arquitectura de una aplicación que accede a una BD Establecer la conexión con BD Establecer la conexión con BD Sentencias SQL sobre la BD Sentencias SQL sobre la BD

2 2 Bibliografía Jesús Bobadilla, Adela Sancho. Comunicaciones y bases de datos con Java. Ed. Rama. George Reese. Programación de bases de datos con JDBC y Java. Ed. Anaya Multimedia, O’Reilly. http://www.ctv.es/USERS/pagullo/arti/jdbc1/jdb c1.htm http://www.ctv.es/USERS/pagullo/arti/jdbc1/jdb c1.htm Sun. “Documentación de Java”. http://java.sun.com. Traducciones al castellano en http://www.programacion.com http://java.sun.comhttp://www.programacion.com http://java.sun.comhttp://www.programacion.com

3 3 Una aplicación Java que realiza accesos a la base de datos funciona según una arquitectura que permite escribir los programas abstrayéndose de los detalles de niveles inferiores. Una aplicación Java que realiza accesos a la base de datos funciona según una arquitectura que permite escribir los programas abstrayéndose de los detalles de niveles inferiores.Aplicación JDBC/Controlador Oracle/ Acess/MySQL... 1. Arquitectura de una aplicación que accede a una BD

4 4 Un controlador JDBC (es una API) es el conjunto de clases que implementan los métodos para acceder a una base de datos a través de un sistema de gestión. Un controlador JDBC (es una API) es el conjunto de clases que implementan los métodos para acceder a una base de datos a través de un sistema de gestión. Existen cuatro categorías de controladores: Existen cuatro categorías de controladores: 1. Arquitectura de una aplicación que accede a una BD Controladores

5 5 Utilizan una tecnología puente para acceder a la base de datos. Por ejemplo del puente JDBC-ODBC que acompaña al jdk (sun.jdbc.odbc.JdbcOdbcDriver). Utilizan una tecnología puente para acceder a la base de datos. Por ejemplo del puente JDBC-ODBC que acompaña al jdk (sun.jdbc.odbc.JdbcOdbcDriver). Controladores que son API’s nativas en C o C++ proporcionados por los distribuidores de las bases de datos. Controladores que son API’s nativas en C o C++ proporcionados por los distribuidores de las bases de datos. 1. Arquitectura de una aplicación que accede a una BD Controladores

6 6 En la dirección http://java.sun.com/products/jdbc/ind ustry.html, se encuentra una lista de todas las empresas que distribuyen drivers jdbc para diferentes motores de base de datos. En la dirección http://java.sun.com/products/jdbc/ind ustry.html, se encuentra una lista de todas las empresas que distribuyen drivers jdbc para diferentes motores de base de datos. http://java.sun.com/products/jdbc/ind ustry.html http://java.sun.com/products/jdbc/ind ustry.html 1. Arquitectura de una aplicación que accede a una BD Controladores

7 7 1. Arquitectura de una aplicación que accede a una BD Clase/InterfaceDescripción Driver Permite conectarse a una Base de Datos: cada gestor de Base de Datos requiere un Driver distinto. DriverManager Permite gestionar todos los Drivers instalados en el sistema. DriverPropertyInfo Proporciona diversa información acerca de un Driver. Connection Representa una conexión con una Base de Datos. Una aplicación puede tener más de una conexión a más de una Base de Datos. DatabaseMetadata Proporciona información acerca de una Base de Datos, como las tablas que contiene, etc. Statement Permite ejecutar sentencias SQL sin parámetros. PreparedStatement Permite ejecutar sentencias SQL con parámetros de entrada. CallableStatement Permite ejecutar sentencias SQL con parámetros de entrada y salida, típicamente procedimientos almacenados. ResultSet Contiene las filas o registros obtenidos al ejecutar un SELECT. ResultSetMetadata Permite obtener información sobre un ResultSet, como el número de columnas, sus nombres, etc. Clases e interfaces de jdbc

8 8 1. Cargar el controlador de la BD 2. Establecer una conexión entre el programa Java y el sistema de administración de la Base de datos. 3. Enviar una sentencia SQL a la BD mediante un objeto Statement 4. Recuperar los resultados de la BD y utilizarlos en el programa. 2. Establecer la conexión con la BD Pasos para la conexión

9 9 JDBC está diseñado para trabajar con diferentes sistemas de administración de BD (de varios fabricantes) JDBC está diseñado para trabajar con diferentes sistemas de administración de BD (de varios fabricantes) Para poder establecer una conexión con la BD especificada se tiene que instalar y cargar el controlador de dicha BD. Para poder establecer una conexión con la BD especificada se tiene que instalar y cargar el controlador de dicha BD. La instalación dependerá del vendedor del driver. La instalación dependerá del vendedor del driver. 2. Establecer la conexión con la BD Cargar el controlador.

10 10 La clase DriverManager es la responsable de cargar y descargar esos controladores La clase DriverManager es la responsable de cargar y descargar esos controladores Los drivers de JDBC suelen estar diseñados por el fabricante de la BD; aceptan conexiones y sentencias SQL por un lado y realizan llamadas a la BD por otro. Los drivers de JDBC suelen estar diseñados por el fabricante de la BD; aceptan conexiones y sentencias SQL por un lado y realizan llamadas a la BD por otro. 2. Establecer la conexión con la BD Cargar el controlador.

11 11 Desde la línea de órdenes, se puede cargar el driver en la fase de ejecución mediante la siguiente sentencia: Desde la línea de órdenes, se puede cargar el driver en la fase de ejecución mediante la siguiente sentencia: java -Djdbc.drivers=jdbc:odbc:JdbcOdbcDriver nombrePrograma Desde el programa, se carga el driver en tiempo de compilación: Desde el programa, se carga el driver en tiempo de compilación: Class.forName(“sun.jdbc.odbc. JdbcOdbcDriver”) No obstante algunas máquinas virtuales no llaman al iniciador estático hasta que se crea una instancia de la clase. Por lo tanto se debe de llamar a newInstance(): No obstante algunas máquinas virtuales no llaman al iniciador estático hasta que se crea una instancia de la clase. Por lo tanto se debe de llamar a newInstance(): Class.forName(“sun.jdbc.odbc. JdbcOdbcDriver”).newInstance(); 2. Establecer la conexión con la BD Cargar el controlador.

12 12 Solicitud al DriverManager para realizar una Connection: Solicitud al DriverManager para realizar una Connection: Connection con = DriverManager.getConnection(url_BD); DriverManager.getConnection(url_BD, usuario, palabraClave); palabraClave); Cuando DriverManager recibe una petición getConnection le envía la URL de JDBC a cada driver registrado. El primer driver que reconoce la URL es el que estable la conexión. Cuando DriverManager recibe una petición getConnection le envía la URL de JDBC a cada driver registrado. El primer driver que reconoce la URL es el que estable la conexión. Si la petición no reconoce se genera una: Si la petición no reconoce se genera una:SQLException 2. Establecer la conexión con la BD Establecimiento de la conexión

13 13 Los objetos Statement se usan para almacenar sentencias SQL Los objetos Statement se usan para almacenar sentencias SQL Statement stat=con.createStatement(); A través del objeto Statement se pueden realizar consultas sobre la BD a través de una Connection, A través del objeto Statement se pueden realizar consultas sobre la BD a través de una Connection, la BD ejecuta la consulta y la devuelve en un ResultSet: la BD ejecuta la consulta y la devuelve en un ResultSet: ResultSet theResults = stat.executeQuery(“consul”); 2. Establecer la conexión con la BD Sentencia SQL sobre la BD

14 14 La clase ResultSet funciona como un cursor SQL que permite examinar los datos de la sentencia SQL fila a fila. La clase ResultSet funciona como un cursor SQL que permite examinar los datos de la sentencia SQL fila a fila. Para avanzar de una fila a la siguiente se llama a next():esta función devuelve un valor booleano; false indica que no existen más filas en el ResultSet. Para avanzar de una fila a la siguiente se llama a next():esta función devuelve un valor booleano; false indica que no existen más filas en el ResultSet. Se puede leer el contenido de las columnas de una fila de izquierda a derecha con los métodos getTipo(). Se puede leer el contenido de las columnas de una fila de izquierda a derecha con los métodos getTipo(). while (theResults.next()) {String titulo=theResults.getString(“titulo”); float precio=theResults.getFloat(“precio”); float precio=theResults.getFloat(“precio”);} 2. Establecer la conexión con la BD Obtención de resultados

15 15 Dado un registro de la consulta establecida sus campos se recuperan con getTipoCampo( posición o nombre). Dado un registro de la consulta establecida sus campos se recuperan con getTipoCampo( posición o nombre). Por lo tanto se deben conocer los tipos correspondientes de Java a cada tipo SQL, la tabla siguiente representa dicha correspondencia: Por lo tanto se deben conocer los tipos correspondientes de Java a cada tipo SQL, la tabla siguiente representa dicha correspondencia: 2. Establecer la conexión con la BD Obtención de resultados

16 16 2. Establecer la conexión con la BD Obtención de resultados Tipo SQLTipo Java CHARString VARCHARString LONGVARCHARString NUMERICJava.math.BigDecimal DECIMALJava.math.BigDecimal BITBoolean TINYINTByte SMALLINTShort INTEGERInt BIGINTLong REALFloat FLOATDouble DOUBLEDouble BINARYByte[] VARBINARYByte[] LONGVARBINARYByte[] DATEJava.sql.Date TIMEJava.sql.Time TIMESTAMPJava.sql.Timestamp


Descargar ppt "1 TEMA 8. Acceso a bases de datos Arquitectura de una aplicación que accede a una BD Arquitectura de una aplicación que accede a una BD Establecer la conexión."

Presentaciones similares


Anuncios Google