JDBC

4,187 views

Published on

Apuntes básicos del tema de JDBC

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
4,187
On SlideShare
0
From Embeds
0
Number of Embeds
92
Actions
Shares
0
Downloads
0
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

JDBC

  1. 1. Java Modulo 2: JDBC<br />M. en Ing. Leonardo M. Moreno Villalba<br />
  2. 2. Que es JDBC<br />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).<br />
  3. 3. El API JDBC hace posible la realización de las siguientes tareas:<br />1. Establecer una conexión con una base de datos.<br />2. Enviar sentencias SQL.<br />3. Manipular los datos.<br />4. Procesar los resultados de la ejecución de las sentencias.<br />
  4. 4. Capas que Componen JDBC<br />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.<br />El controlador recibe las órdenes y las traduce a órdenes directas al gestor de base de datos.<br />
  5. 5. Tipos de Drivers en JDBC<br />Tipo 1 JDBC-ODBC<br />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.<br />
  6. 6. Tipos de Drivers en JDBC<br />Tipo 2 Java Nativo<br />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.<br />
  7. 7. Tipos de Drivers en JDBC<br />Tipo 3 100% Java - Protocolo Nativo<br />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.<br />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.<br />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.<br />
  8. 8. Tipos de Drivers en JDBC<br />Tipo 4 100% Java-Protocolo Independiente<br />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.<br />Es el controlador más independiente de la plataforma de los cuatro vistos.<br />Este controlador traduce las ordenes JDBC directamente al protocolo de red que implementa o emplea el SGBD.<br />
  9. 9. Interfaces de JDBC<br />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.<br />
  10. 10. Tabla de Descripción de las interfaces y clases de JDBC<br />
  11. 11. Ejemplo básico de conexión 1<br />importjava.sql.Connection;<br />importjava.sql.DriverManager;<br />importjava.sql.SQLException;<br />publicclassMain {<br />publicstaticvoidmain(String[] args) {<br />Connectionconn;<br />System.out.println("Iniciando programa.");<br /> // Se carga el driver JDBC-ODBC<br /> try {<br />Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");<br />System.out.println("Se han cargado los driver correctamente");<br /> } catch (Exception e) {<br />System.out.println("No se pudo cargar el puente JDBC-ODBC.");<br /> }<br /> try {<br /> // Se establece la conexión con la base de datos<br />conn = DriverManager.getConnection("jdbc:odbc:AccessModulo2Puente", "", "");<br />System.out.println("Se ha establecido la conexion con la base de access "+ conn.getCatalog()+".mdb Correctamente" );<br /> } catch (SQLException e) {<br /> }<br /> }<br />}<br />
  12. 12. Ejemplo básico de conexión 2<br />importjava.sql.Connection;<br />importjava.sql.DriverManager;<br />importjava.sql.ResultSet;<br />importjava.sql.SQLException;<br />publicclass EjemplBásicoConexión2 {<br />publicstaticvoidmain(String[] args) {<br />Connectionconn;<br />System.out.println("Iniciando programa.");<br /> // Se carga el driver JDBC-ODBC<br /> try {<br />Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");<br />System.out.println("Se han cargado los driver correctamente");<br /> } catch (Exception e) {<br />System.out.println("No se pudo cargar el puente JDBC-ODBC.");<br /> }<br /> try {<br /> // Se establece la conexión con la base de datos<br />conn = DriverManager.getConnection("jdbc:odbc:AccessModulo2Puente", "", "");<br />System.out.println("Se ha establecido la conexion con la base de access " + conn.getCatalog() + ".mdb Correctamente");<br />System.out.println("Esta base de Datos tiene las siguientes Tablas:");<br />ResultSetrs = conn.getMetaData().getTables(null, null, "%", null);<br />while (rs.next()) {<br />System.out.println(rs.getString(3));<br /> }<br /> } catch (SQLException e) {<br /> }<br /> }<br />}<br />
  13. 13. Ejemplo básico de conexión 3<br />importjava.sql.Connection;<br />importjava.sql.DriverManager;<br />importjava.sql.SQLException;<br />publicclass EjemploBasicoConexion3 {<br />publicstaticvoidmain(String[] args) {<br />Connectionconn;<br />System.out.println("Iniciando programa.");<br /> // Se carga el driver JDBC-ODBC<br /> try {<br />Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");<br />System.out.println("Se han cargado los driver correctamente");<br /> } catch (Exception e) {<br />System.out.println("No se pudo cargar el puente JDBC-ODBC.");<br />return;<br /> }<br /> try {<br /> // Se establece la conexión con la base de datos<br />conn = DriverManager.getConnection("jdbc:odbc:AccessModulo2Puente", "", "");<br />System.out.println("Se ha establecido la conexion con la base de access "+ conn.getCatalog()+".mdb Correctamente" );<br />conn.close();<br />System.out.println("Se ha cerrado la conexion a la base correctamente");<br /> } catch (SQLException e) {<br /> }<br /> }<br />}<br />

×