Introducción
Las bases de datos son el mecanismo que las organizaciones utilizan para almacenar grandes volúmenes de datos. Las bases de datos son gestionadas desde aplicaciones de software con arquitectura a tres capas.
En esta unidad se introduce al acceso a un sistema gestor de base de datos utilizando el API de Java JDBC.
Propósitos de Aarendizaje
Propósito General
Escribir aplicaciones utilizando GUI que accedan a bases de datos relacionales.
Propósitos Específicos
- Escribir aplicaciones utilizando GUI que accedan a bases de datos relacionales.
- Acceder a un sistema gestor de base de datos utilizando el patrón DAO.
Arquitectura y API JDBC
La API JDBC de Java provee una serie de clases e interfaces para el acceso a datos. Este paquete permite conectarse a una base de datos, consultar o actualizar datos utilizando sentencias SQL. De esta manera, se logra la independencia de una aplicación con la base de datos.
Al utilizar el API Java SQL en aplicaciones con arquitectura MVC es posible la independencia con el proveedor del Sistema Gestor de Base de Datos (SGBD), ya que existen muchos proveedores y cada uno utiliza su propio protocolo. Desde el API se accede a la base de datos desde una clase administrador de protocolos de terceros.
Arquitectura y API JDBC
Definición JDBC
JBDC (Java Database Connectivity) es un conjunto de clases, interfaces, enumeraciones y excepciones (API) que permite el acceso a bases de datos relacionales, la ejecución de sentencias SQL y la manipulación del resultado de las mismas. El paquete principal de JDBC es java.sql, también existe el paquete javax.sql.
JDBC proporciona un mecanismo estándar e independiente de acceso a la mayoría de los gestores de datos relacionales. Cada fabricante de base de datos debe proporcionar el driver JDBC específico para el acceso y trabajo con su base de datos.
“Desde la aplicación Java, para implementar los tres puntos del proceso esquemático (gráfico), para trabajar con JDBC, se utiliza fundamentalmente la siguiente interface, estudiemos su funcionamiento.
Arquitectura y API JDBC
Tipos de Drivers
Un driver o controlador JDBC es un componente de software que permite a las aplicaciones escritas en java interactuar con un sistema gestor de base de datos DBMS.
Para conectar un DBMS (MySql, Oracle, SqlServer, Dervy, etc), el JDBC requiere de controladores para cada gestor.
Una aplicación java que utiliza API JDBC carga el driver o controlador especificado para el DBMS particular antes de conectarse con la base de datos. Una vez conectado el controlador, la clase JDBC DriverManager envía todas las peticiones al API JDBC al controlador cargado. Existen cuatro tipos de drivers, los cuales se explican en la interactividad anterior.
Arquitectura y API JDBC
Excepciones
Los objetos de la conexión a la base de base datos y los objetos que preparan las sentencias SQL, son recursos que se abren y se deben de cerrar. Por esta razón las sentencias que crean estos objetos pueden estar definidas en un try con recursos, para así evitar escribir el código de la función close(), que a su vez lanza también SQLException.
En el siguiente ejemplo, una función lanza una excepción con la sentencia SQLException. Tiene un try con recursos con la creación del objeto que realiza la sentencia SQL, que ejecuta la base de datos. Dentro del bloque try, las sentencias que manejan la información devuelta por la sentencia SQL utilizan funciones que lanzan SQLException, por tanto, try tiene su correspondiente catch para dicha excepción. Esta forma de código es muy típica en los códigos que utilizan el acceso a datos con JDBC.
![]() |
A continuación mostraremos cómo cargar el driver o controlador JDBC a un proyecto para tener acceso a los datos. |
Controlador JDBC
Es un componente de software que permite a las aplicaciones escritas en Java interactuar con un sistema gestor de bases de datos. Para conectar con base de datos individuales, JDBC requiere controladores para cada base de datos.
El controlador JDBC ofrece la conexión a la base de datos e implementa el protocolo para la transferencia de las consultas y los resultados entre el cliente (aplicación) y la base de datos.
Controlador JDBC
Cargar el controlador
Antes de utilizar JBDC para acceder a los datos de una base de datos es necesario cargar el controlador.
Para establecer una conexión a base de datos JDBC hay que tener en cuenta una serie de pasos, los cuales son explicados de forma interactiva.
Controlador JDBC
Obtener la conexión
El método DriverManager.getConnection() permite conectarse a la base de datos, el método toma argumento una URL (Localizar Uniforme de Recursos). El gestor de controladores JDBC localiza el controlador para conectarse a la base de datos definida en la URL.
Existen tres sobrecargas del método estático getConnection() de la clase DriverManager para obtener la conexión.
Controlador JDBC
Obtener el objeto Statement
Una vez obtenida la conexión a la base de datos, esta se utilizará para realizar operaciones de consulta, inserción y borrado de datos, además de operaciones de creación, modificación y borrado de tablas mediante lenguaje SQL.
La interface Statement es la que permite realizar todas estas operaciones, junto con sus dos subinterfaces PreparedStatement y CallableStatement.
La instanciación de esta clase se realiza haciendo uso de las diferentes sobrecargas de los tres métodos que proporciona el objeto Connection. Todas estas funciones lanzan la excepción SQLException.
Controlador JDBC
Obtener el Objeto ResultSet
El resultado de ejecutar una sentencia SELECT de SQL por medio de un Statement, proporciona un ResultSet, que se puede comprender mejor si se imagina como una tabla que tiene tantas columnas, como la cláusula SELECT, y tantas filas, como las recuperadas con la cláusula WHERE, de la tabla o tablas especificadas en la cláusula FROM.
Por tanto, se pueden obtener ResultSet que tengan cero, una o más filas, pudiendo tener valores nulos en algunas de sus columnas. En el gráfico de esta pantalla se muestra el resultado de la ejecución de una sentencia SQL que genera varias filas. El ResultSet generado en JDBC tendría esas columnas y filas.
Para recorrer el ResultSet se utiliza el método net(). Este método devuelve true si existe una fila siguiente, y mueve el ResultSet a la siguiente. Si no hay más filas devuelve false, tal cual se presenta en la siguiente interactividad.
Para obtener la información de las columnas del ResultSet se utilizan las funciones getXXX, donde XXX denota un tipo de dato.
![]() |
A continuación se exponen los tipos de datos y conversiones. |
Sentencias SQL
SQL lenguaje de consulta estructurado (Structured Query Languaje) es un lenguaje declarativo de acceso a datos que permite realizar operaciones de insertar, consultar, modificar y eliminar datos sobre una base de datos.
SQL está estructurado por comandos, cláusulas, operadores y funciones que combinan instrucciones para crear, actualizar y manipular las bases de datos.
Sentencias SQL
Actualizar, borrar e insertar registros con sentencias SQL
Para actualizar, insertar o borrar filas del ResultSet este tiene que ser de tipo CONCUR_UPDATABLE; si no es así estas operaciones se tendrán que realizar con las funciones de la interface Statement execute y executeUpdate, que reciben como parámetro la sentencia SQL correspondiente.
![]() |
A continuación se presentan diferentes ejemplos de los registros con sentencias SQL. |
Implementar Patrón DAO
Es un patrón de diseño que divide las responsabilidades en una aplicación de software, de tal forma que propone unas clases que se encargan de la representación de datos (DTO) y otras clases que se encargan de la lógica de negocio y el acceso a la base de datos (DAO). De esta forma, se garantiza la portabilidad del sistema en los diferentes sistemas gestores de bases de datos (SQLServer, Oracle, MySql, etc).
- DTO-entidad:Son las clases que permiten representar los datos. Por ejemplo, la clase Contacto representa los datos de un contacto nombre, dirección y teléfono, esta clase se conocen como Beans.
- DAO-Entidad:Son las clases que representan la lógica de negocio y las operaciones sobre la base de datos. Interactúan con el SGBD para insertar, modificar, consultar o eliminar datos en la estructura de la base de datos.
Actividad de aprendizaje
![]() |
En la siguiente actividad organiza de forma coherente el significado de varios conceptos fundamentales sobre el API JDBC de java para el acceso a datos. |
Resumen
En esta unidad se introduce el acceso a datos utilizando el API de Java JDBC (Java Database Connectivity), el cual es un conjunto de clases, interfaces, enumeraciones y excepciones (API) que permite el acceso a bases de datos relacionales o no relacionales. JDBC proporciona un mecanismo estándar e independiente de acceso a la mayoría de los gestores de datos relacionales. Cada fabricante de base de datos debe proporcionar el driver JDBC específico para el acceso y trabajo con su base de datos.
Se describe con teoría y ejemplos el esquema del proceso a seguir para trabajar con JDBC que es un componente de software que permite a las aplicaciones escritas en Java interactuar con un sistema gestor de bases de datos. Para conectar con base de datos individuales, JDBC requiere controladores para cada base de datos
Para finalizar se explican con ejemplos las sentencias SQL que permiten, insertar, modificar, consultar y eliminar datos de la base de datos. Al finalizar la unidad, se utiliza un video que explica mediante un ejemplo la relación entre el controlador y el modelo utilizando el patrón DAO.
Caso de Estudio
Resuelve el siguiente crucigrama con los conceptos fundamentales sobre el API JDBC de java para el acceso a datos.
Bibliografía ()
- Esteban, A. (2010). Acceso a Base de datos con JAVA JDBC. Madrid: Grupo Edios.
- Deitel, P. (2016). Como Programar en Java. España: Pearson Education.
- Maydene, F. (2003). JDBC API Tutorial and Reference. España: Addison Wesley.
Referencias Web
- Dev.mysql.com. (2017). MySQL :: MySQL Connector/J 5.1 Developer Guide :: 5.2 JDBC API Implementation Notes. [online] Disponible en: https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-implementation-notes.html
- Docs.oracle.com. (2017). Java JDBC API. [online] Disponible en: https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/
- Netbeans.org. (2017). Connecting to Oracle Database - NetBeans IDE Tutorial. [online] Disponible en: https://netbeans.org/kb/docs/ide/oracle-db.html









