1. 29/04/14 ODBC - JDBC
1/6odbc.wikispaces.com/JDBC
JDBC (/JDBC)
Editar 0 (/page/messages/JDBC) 3 (/page/history/JDBC) … (/page/menu/JDBC)
JDBC
DEFINICIÓN
Para la gente del mundo Windows, JDBC es para Java lo que ODBC es para Windows. Windows en
general no sabe nada acerca de las bases de datos, pero define el estándar ODBC consistente en un
conjunto de primitivas que cualquier driver o fuente ODBC debe ser capaz de entender y manipular. Los
programadores que a su vez deseen escribir programas para manejar bases de datos genéricas en
Windows utilizan las llamadas ODBC.
Con JDBC ocurre exactamente lo mismo: JDBC es una especificación de un conjunto de clases y
métodos de operación que permiten a cualquier programa Java acceder a sistemas de bases de datos de
forma homogénea. Lógicamente, al igual que ODBC, la aplicación de Java debe tener acceso a un driver
JDBC adecuado. Este driver es el que implementa la funcionalidad de todas las clases de acceso a datos
y proporciona la comunicación entre el API JDBC y la base de datos real.
La necesidad de JDBC, a pesar de la existencia de ODBC, viene dada porque ODBC es un interfaz escrito
en lenguaje C, que al no ser un lenguaje portable, haría que las aplicaciones Java también perdiesen la
portabilidad. Y además, ODBC tiene el inconveniente de que se ha de instalar manualmente en cada
máquina; al contrario que los drivers JDBC, que al estar escritos en Java son automáticamente
instalables, portables y seguros.
2 IMAGEN
http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte21/cap213.html
2. 29/04/14 ODBC - JDBC
2/6odbc.wikispaces.com/JDBC
Toda la conectividad de bases de datos de Java se basa en sentencias SQL, por lo que se hace
imprescindible un conocimiento adecuado de SQL para realizar cualquier clase de operación de bases de
datos. Aunque, afortunadamente, casi todos los entornos de desarrollo Java ofrecen componentes
visuales que proporcionan una funcionalidad suficientemente potente sin necesidad de que sea necesario
utilizar SQL, aunque para usar directamente el JDK se haga imprescindible. La especificación JDBC
requiere que cualquier driver JDBC sea compatible con al menos el nivel «de entrada» de ANSI SQL 92
(ANSI SQL 92 Entry Level). [1]
2. JDBC (Java Database Connectivity) es un API para trabajar con bases de datos desde Java,
independientemente de la base de datos a la que accedemos.
A la hora de conectarnos a una base de datos usando JDBC usamos un driver intermedio, que no es más
que una clase ofrecida por el vendedor que implementa la interfaz Driver. Cuando se crea una instancia de
una de estas clases Driver, esta se registra con el DriverManager (gestor de drivers) que es la encargada
de decidir qué driver se ha de utilizar para acceder a tal o cual BBDD. El driver para trabajar con bases de
datos MySQL, por ejemplo, es com.mysql.jdbc.Driver.[2]
Acceso de JDBC a Bases de Datos
El API JDBC soporta dos modelos diferentes de acceso a Bases de Datos, los modelos de dos y tres
capas.
Modelo de dos capas
Este modelo se basa en que la conexión entre la aplicación Java o el applet que se ejecuta en el
navegador, se conectan directamente a la base de datos.
Imagen3
http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte21/cap21
3.html
Esto significa que el driver JDBC específico para conectarse con la base de datos, debe residir en el
sistema local. La base de datos puede estar en cualquier otra máquina y se accede a ella mediante la red.
Esta es la configuración de típica Cliente/Servidor: el programa cliente envía instrucciones SQL a la base
de datos, ésta las procesa y envía los resultados de vuelta a la aplicación.
Modelo de tres capas
En este modelo de acceso a las bases de datos, las instrucciones son enviadas a una capa intermedia
entre Cliente y Servidor, que es la que se encarga de enviar las sentencias SQL a la base de datos y
recoger el resultado desde la base de datos. En este caso el usuario no tiene contacto directo, ni a través
3. 29/04/14 ODBC - JDBC
3/6odbc.wikispaces.com/JDBC
de la red, con la máquina donde reside la base de datos.
IMAGEN4
http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte21/cap21
3.html
Este modelo presenta la ventaja de que el nivel intermedio mantiene en todo momento el control del tipo de
operaciones que se realizan contra la base de datos, y además, está la ventaja adicional de que los drivers
JDBC no tienen que residir en la máquina cliente, lo cual libera al usuario de la instalación de cualquier tipo
de driver.[1]
3. La conectividad de la base de datos de Java (JDBC Java Database Connectivity) es un marco de
programación para los desarrolladores de Java que escriben los programas que tienen acceso a la
información guardada en bases de datos, hojas de calculo, y archivos "planos". JDBC se utiliza
comúnmente para conectar un programa del usuario con una base de datos por “detrás de la escena”, sin
importar qué software de administración o manejo de base de datos se utilice para controlarlo.[3]
USANDO EL PROGRAMA PILOTO DE JDBC
Sin importar la localización, la plataforma, o el programa piloto de la fuente de datos (Oracle, Microsoft,
etc.), el JDBC se conecta con una fuente de datos menos difícil proporcionando a una colección de
extensiones (class) que contienen los detalles abstractos de la interacción de la base de datos. La
ingeniería del software en los programas con JDBC también conduce a la reutilización del módulo. Los
programas pueden fácilmente insertados en diferentes infraestructuras para su almacenamiento de datos
(cualquier plataforma usted elija utilizar en el futuro) con solo sustituir el programa piloto o JDBC driver.
Mientras usted se maneja con las plataformas más populares en base de datos (tales como Oracle,
Informix, Microsoft, MySQL, etc.), hay un programa piloto de JDBC escrito que permite que los programas
puedan conectarse y manipular los datos. Usted puede descargar un programa piloto específico de JDBC
del fabricante de su sistema de administración de base de datos (DBMS) o de terceros (en la caja de los
productos abiertos menos populares). El programa piloto de JDBC para su base de datos vendrá con
instrucciones específicas de hacer los archivos del tipo class del programa piloto disponible para la JVM o
Máquina Virtual de Java, que va a hacer funcionar su programa. Los programas pilotos de JDBC utilizan el
You are not a member of this wiki. Join now (http://odbc.wikispaces.com/space/join) Dismiss
4. 29/04/14 ODBC - JDBC
4/6odbc.wikispaces.com/JDBC
builtin de Java DriverManager para abrir y tener acceso a una base de datos dentro de su programa de
Java.
JDBC (Java DataBase Connectivity = conectividad java a bases de datos) es un conjunto de clases e
interfaces escritos en Java que ofrecen una API completa para la programación de bases de datos de
diferentes proveedores (Microsoft SQL Server, Oracle, MySQL, Interbase, Microsoft Access, IBM DB2,
PostgreSQL, etc...) usando instrucciones SQL (Structured Query Language = Lenguaje estructurado de
consultas).
JDBC realiza varias funciones:
1. conecta con la base de datos ; la BD puede ser local (en nuestro PC) o remota (en otro PC)
2. envía las sentencias SQL
3. manipula los registros de la BD
4. recoge el resultado de la ejecución de las sentencias SQL[3]
JDBC vs ODBC
JDBC difiere de ODBC (conectividad abierta a bases de datos), API de Microsoft muy utilizada para
acceder a BD de diferentes proveedores desde múltiples plataformas:
1. ODBC está escrito en C
2. el gestor de drivers ODBC y el propio driver han de ser instalados en todos los ordenadores
3. JDBC está escrito en Java y permite obtener aplicaciones completas en Java (100% pure java)
4. usando ODBC en BD grandes, el rendimiento puede disminuir al convertir llamadas Java a C y
viceversa
Clases y métodos de JDBC
JDBC utiliza los mismos métodos y clases independientemente del driver usado para conectar al
proveedor de BD, lo que cambia es el nombre del driver por lo que es bastante sencillo modificar
aplicaciones al cambiar de proveedor. El código genérico de conexión a una BD es:
Registrar el driver JDBC usando el cargador de clases Class.forName:
Class.forName ("nombre_del_driver");
Conectar a la BD usando la interfaz Connection que abre una sesión o conexión con la BD
especificada y, mediante el método DriverManager.getConnection, intenta seleccionar el driver
apropiado de entre los que JDBC tenga registrados en el sistema:
Connection con = DriverManager.getConnection ("BD_url", "usuario", "password");
Ejecutar sentencias SQL; la interfaz Statement permite ejecutar las instrucciones SQL y devolver el
resultado generado:
Statement select = con.createStatement();
La interfaz ResultSet representa un conjunto de datos resultado de una consulta SQL, para acceder
a los registros se emplea un cursor que inicialmente apunta antes del primer registro y para avanzar
por los registros se emplea el metodo ResultSet.next(). ResultSet es de sólo lectura:
ResultSet nombres = select.executeQuery ("SELECT * FROM Tabla ORDER BY Id");
Las consultas Statement tienen métodos diferentes según el tipo de instrucción SQL empleada:
5. 29/04/14 ODBC - JDBC
5/6odbc.wikispaces.com/JDBC
executeQuery(String sql): devuelve un objeto ResultSet
executeUpdate(String sql): ejecuta una instruccion de tipo INSERT, UPDATE o DELETE
JDBC puede usar varios drivers, entre ellos los más importantes son:
Microsoft SQL Server (se descarga desde la web de Microsoft, es un controlador JDBC de
SQL Server 2005 y de SQL Server 2000; se trata de un controlador JDBC de Tipo 4 que
proporciona conectividad de base de datos a través de las API JDBC estándar disponibles en
J2EE Java2 Enterprise Edition:
Class.forName: com.microsoft.jdbc.sqlserver.SQLServerDriver
Connection: jdbc:microsoft:sqlserver:<HOST>:<puerto>;DatabaseName=[nombre_BD];User=
[usuario];Password=[password]
JDBCODBC Bridge (puente con ODBC, sirve para conectar con BD de Microsoft Access):
Class.forName: sun.jdbc.odbc.JdbcOdbcDriver
Connection: jdbc:odbc:<ruta_a_la_BD>
La conexión con la BD de Microsoft Access puede realizarse de 2 maneras:
configurando la BD como DSN de Sistema en el Panel de control ODBC
/* cadena de conexion: AccessBD es el nombre con el que se ha configurado
* la conexion a la BD en el panel de control ODBC */
String url = "jdbc:odbc:AccessBD";
usando la ruta física a la BD en la cadena de conexión (no hace falta configurarla en el
Panel de control ODBC):
cadena de conexion con la ruta fisica a la BD
String db = "D:CarpetaSubcarpetaSubcarpetabase_de_datos.mdb";
si la BD esta en la carpeta de la aplicacion Java se escribe
String db = "base_de_datos.mdb";
String url = "jdbc:odbc:MS Access Database;DBQ=" + db;
MySQL (driver MM.MySQL):
Class.forName: org.gjt.mm.mysql.Driver
Connection: jdbc:mysql://<HOST>:<puerto>/<BD>[4]
BIBLIOGRAFIA
[1]http://www.dcc.uchile.cl/~lmateu/CC60H/Trabajos/jfernand/
[2]http://mundogeek.net/archivos/2007/01/27/jdbc/
[3]http://www.acm.org/crossroads/espanol/xrds73/ovp_marzo2001.html
[4] http://md2.dei.inf.uc3m.es:8000/PA/Practicas/p2.pdf
6. 29/04/14 ODBC - JDBC
6/6odbc.wikispaces.com/JDBC
Ayuda · Acerca de · Blog · Precio · Privacidad · Términos · Apoyo · Elevar de categoría
Contributions to http://odbc.wikispaces.com/ are licensed under a Creative Commons Attribution ShareAlike
3.0 License.
Portions not contributed by visitors are Copyright 2014 Tangient LLC