JDBC versus ODBC y otras APIs

La API ODBC de Microsoft es probablemente la interface de programación para acceder a bases de datos relacionales más extensamente usada.

Ofrece la posibilidad de conectar a casi la totalidad de bases de datos. Entonces, ¿por qué no usar simplemente ODBC desde Java?

La respuesta es que se puede usar ODBC desde Java, pero esto se hace mejor con la ayuda de JDBC en la forma de un Puente JDBC -ODBC, el cual trataremos en breve. La pregunta es ahora ¿Por qué se necesita JDBC? Hay varias respuestas para esta pregunta:

ODBC no es apropiado para su uso directo desde Java porque usa una interface en C. Las llamadas desde Java a código C nativo tienen un número de inconvenientes en la seguridad, implementación, robustez y portabilidad de las aplicaciones.

– Una traducción literal de la OBDC API en C a una API en Java no sería deseable. Por ejemplo, Java no tiene punteros y ODBC hace un copioso uso de ellos. Se puede pensar en JDBC como ODBC traducido a un interface orientado a objetos que es natural para programadores en Java.

ODBC es duro de aprender. Mezcla características elementales con otras más avanzadas y tiene complejas opciones incluso para las consultas más simples. JDBC, por otro lado, fue diseñado para mantener simples las cosas simples mientras permite posibilidades más avanzadas cuando se requieren.

– Una API en Java como JDBC es necesaria para conseguir una solución “puramente Java”. Cuando se usa ODBC, el gestor de controladores (driver manager) y los controladores (drivers) ODBC deben ser manualmente instalados en cada máquina cliente. Sin embargo, cuando el driver JDBC está escrito totalmente en Java, el código JDBC es automáticamente instalable, portable y seguro en todas las plataformas Java desde computadoras en red hasta mainframes.

En definitiva, la JDBC API es una interface natural de Java para las abstracciones y conceptos básicos de SQL.

Está fundamentada en ODBC por lo que los programadores familiarizados con ODBC encontrarán fácil de aprender JDBC. JDBC mantiene las características de diseño básicas de ODBC.

La gran diferencia es que JDBC está basada y refuerza el estilo y virtudes de Java y, por supuesto, es fácil de usar.

Controladores JDBC

Tipos de controladores (Drivers) de JDBC

Java puede acceder a la base de datos mediante un driver o controlador JDBC apropiado que pueda utilizar las clases que permiten el acceso a la base de datos. Existen diversos tipos de drivers, que utilizan distintos protocolos. En particular, en esta asignatura se utilizará el llamado Puente JDBC-ODBC, que se explicará más adelante.

Cómo obtener los Drivers de JDBC

Para conseguir la información actualizada sobre drivers, acceder a la página web sobre drivers para JDBC de Sun, donde se mantiene un registro actualizado de vendedores de drivers:

http://industry.java.sun.com/products/jdbc/drivers

Fuente: Apuntes de informática III, Escuela Superior de Ingenieros de la Universidad de Navarra.