1. Java Modulo 2: JDBC M. en Ing. Leonardo M. Moreno Villalba
2. Que es JDBC Es un especificación formada por una colección de interfaces y clases abstractas, que deben implementar todos los fabricantes de drivers que quieran realizar una implementación de su driver 100% Java y compatible con JDBC (JDBC-compliantdriver).
3. El API JDBC hace posible la realización de las siguientes tareas: 1. Establecer una conexión con una base de datos. 2. Enviar sentencias SQL. 3. Manipular los datos. 4. Procesar los resultados de la ejecución de las sentencias.
4. Capas que Componen JDBC El API JDBC que es el conjunto de clases que utiliza el programador. Dentro de este API tenemos el administrador de controladores (Driver Manager) que recibe las peticiones del programa Java y comunica con el controlador seleccionado, de manera transparente para el programador. El controlador recibe las órdenes y las traduce a órdenes directas al gestor de base de datos.
5. Tipos de Drivers en JDBC Tipo 1 JDBC-ODBC El puente JDBC-ODBC convierte llamadas JBDC a ODBC, asignando todo el trabajo a ODBC. Los drivers de este tipo requieren que también un ODBC driver sea instalado en cada cliente con sus propias librerías (APIS), siendo esta una desventaja, además de ser algo lento en los accesos a las bases de datos.
6. Tipos de Drivers en JDBC Tipo 2 Java Nativo Este tipo de controlador se conoce como API nativas, el controlador contiene código java por medio del cual se realizan las llamadas a los métodos nativos de la base de datos ya sea en C o C++ que son los encargados del acceso a la base de datos. En ocasiones es necesario instalar un software cliente para utilizar este tipo de controlador.
7. Tipos de Drivers en JDBC Tipo 3 100% Java - Protocolo Nativo Los controladores de este tipo son llamados drivers de protocolo de red y convierten llamadas JDBC a un protocolo de base independiente que traduce el protocolo de red en el protocolo nativo correcto de la base de datos. Estos controladores JDBC se comunican con la aplicación intermedia en el servidor que trasladan las peticiones del programa cliente a una API especifica del controlador. Ofrece la posibilidad de no instalar ningún software en el cliente. Este controlador está diseñado 100% en Java y utiliza el protocolo nativo de red para comunicarse con el SGBD (Sistema de Gestión de Bases de Datos), por tanto, se independiza totalmente de la plataforma.
8. Tipos de Drivers en JDBC Tipo 4 100% Java-Protocolo Independiente Estos drivers no requieren un software especial para ser instalado en el cliente. Utilizan protocolos de red que están incluidos en el SGBD (Sistema de Gestión de Bases de Datos), por lo tanto los controladores se comunican de manera directa con la base de datos. Se encuentra escrito totalmente en java y son provistos por el fabricante del SGBD. Es el controlador más independiente de la plataforma de los cuatro vistos. Este controlador traduce las ordenes JDBC directamente al protocolo de red que implementa o emplea el SGBD.
9. Interfaces de JDBC JDBC define ocho interfaces para operaciones con bases de datos, de las que se derivan las clases correspondientes. La figura siguiente, muestra la interrelación entre estas clases según el modelo de objetos de la especificación de JDBC.
11. Ejemplo básico de conexión 1 importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.SQLException; publicclassMain { publicstaticvoidmain(String[] args) { Connectionconn; System.out.println("Iniciando programa."); // Se carga el driver JDBC-ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Se han cargado los driver correctamente"); } catch (Exception e) { System.out.println("No se pudo cargar el puente JDBC-ODBC."); } try { // Se establece la conexión con la base de datos conn = DriverManager.getConnection("jdbc:odbc:AccessModulo2Puente", "", ""); System.out.println("Se ha establecido la conexion con la base de access "+ conn.getCatalog()+".mdb Correctamente" ); } catch (SQLException e) { } } }
12. Ejemplo básico de conexión 2 importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.ResultSet; importjava.sql.SQLException; publicclass EjemplBásicoConexión2 { publicstaticvoidmain(String[] args) { Connectionconn; System.out.println("Iniciando programa."); // Se carga el driver JDBC-ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Se han cargado los driver correctamente"); } catch (Exception e) { System.out.println("No se pudo cargar el puente JDBC-ODBC."); } try { // Se establece la conexión con la base de datos conn = DriverManager.getConnection("jdbc:odbc:AccessModulo2Puente", "", ""); System.out.println("Se ha establecido la conexion con la base de access " + conn.getCatalog() + ".mdb Correctamente"); System.out.println("Esta base de Datos tiene las siguientes Tablas:"); ResultSetrs = conn.getMetaData().getTables(null, null, "%", null); while (rs.next()) { System.out.println(rs.getString(3)); } } catch (SQLException e) { } } }
13. Ejemplo básico de conexión 3 importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.SQLException; publicclass EjemploBasicoConexion3 { publicstaticvoidmain(String[] args) { Connectionconn; System.out.println("Iniciando programa."); // Se carga el driver JDBC-ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Se han cargado los driver correctamente"); } catch (Exception e) { System.out.println("No se pudo cargar el puente JDBC-ODBC."); return; } try { // Se establece la conexión con la base de datos conn = DriverManager.getConnection("jdbc:odbc:AccessModulo2Puente", "", ""); System.out.println("Se ha establecido la conexion con la base de access "+ conn.getCatalog()+".mdb Correctamente" ); conn.close(); System.out.println("Se ha cerrado la conexion a la base correctamente"); } catch (SQLException e) { } } }