1. Introducción a JDBC
1.1. Introducción
En este primer punto se realiza una introducción a las características de JDBC (del inglés “Java Database Connectivity”, conexión Java con bases de datos). Se pretende con ello, dar una aproximación a las funciones principales que incorpora este interfaz de programación de interfaces o API (“Application Programming Interface”) de Java.
También se observan las principales ventajas que provee el lenguaje de programación Java a los sistemas basados en J2EE (“Java 2 Enterprise Edition”) y las propiedades que el mismo confiere a las aplicaciones, gracias a su robustez y portabilidad, algo que afecta muy directamente al acceso a las bases de datos, en especial a los drivers de JDBC que permiten la conexión con las distintas bases de datos relacionales existentes en el mercado.
1.2. Objetivos
Los objetivos a cubrir en esta lección resultan ser los siguientes:
Conocer los beneficios ofrecidos por JAVA.
Saber la organización de
JDBC, sus tipos de
drivers y sus características.
Tener una primera
aproximación a la API de JDBC y a su estructura. Recordar el modelo de
entidad relación, que define una base de datos, mediante un ejemplo y
desarrollarlo en una base de datos relacional concreta.
2. Conexión con una base de datos
2.1. Introducción
Se observa, a continuación, como se realiza mediante JDBC una conexión a una base de datos. Se presenta una descripción de la interfaz Connection, así como de la clase DriverManager, que constituye la capa intermedia que se sitúa entre el usuario y los drivers.
La interfaz DriverManager es, por tanto, uno de los primeros objetos a lo que se debe prestar atención para utilizar JDBC. Puesto que gestiona los drivers JDBC será el encargado de encontrar un driver idóneo para las peticiones de conexión que la aplicación le realice.
Estas peticiones de conexión utilizan una URL para determinar el servicio de base de datos al que se desea acceder. Estos identificadores tienen un formato propio de JDBC y su esquema de nombrado permite indicar no sólo la ubicación lógica del recurso, ya que para eso hubiera bastado con URLs usuales, sino que permite identificar el driver o familia de drivers capaces de comunicarse con la base de datos así como otros detalles dependientes del gestor como puertos y parámetros adicionales.
Por último, se muestran los pasos necesarios para el establecimiento de una conexión de JDBC con una base de datos relacional y el formato necesario para la misma, así como la forma de tratar las posibles excepciones de JDBC.
2.2. Objetivos
Los objetivos de la lección persiguen:
Aprender a realizar conexiones mediante JDBC.
Aprender a utilizar la
clase DriverManager.
Conocer los principales métodos de la interfaz
Connection.
Entender las peculiaridades de las urls que acepta JDBC.
3. Trabajo con tablas
3.1.Introducción
En esta lección se realiza una explicación detallada del manejo de tablas, a través de la interfaz Statement. Posteriormente se muestran las características y métodos de la interfaz ResultSet, mediante la que JDBC muestra los resultados de ejecutar una consulta SQL sobre una base de datos.
Una aplicación que utilice JDBC para acceder a tablas sigue en general una secuencia lógica que consiste en una primera fase de inicialización en la que se carga el driver JDBC y se conecta con la base de datos, la creación de un objeto Statement para poder ejecutar una sentencia SQL y recorrer su resultado mediante la interfaz ResultSet.
Se muestra, posteriormente, el uso básico de las interfaces Statement y ResultSet que son las interfaces que realmente permiten la interacción con las tablas y el procesado de los resultados, ya que el resto de interfaces de JDBC están relacionadas con aspectos como el del establecimiento de la conexión y la obtención de metadatos.
3.2. Objetivos
Los objetivos de esta lección son los
siguientes:
Conocer la interfaz Statement para realizar las peticiones
SQL a la base de datos utilizada, revisando los diferentes parámetros
que acepta la interfaz Statement y las diferencias que estos imponen a
los resultados.
Aprender la secuencia de acciones que hay que realizar
para poder ejecutar sentencias SQL, obtener los resultados y terminar
las acciones liberando los recursos.
Adquirir el conocimiento sobre las
sentencias SQL para realizar las búsquedas en las tablas mediante JDBC.
Adquirir el conocimiento sobre las sentencias SQL del lenguaje de
definición de datos: Update, Delete e Insert, en JDBC.
Conocer la
interfaz ResultSet para poder trabajar con los datos devueltos por la
base de datos tras la ejecución de alguna sentencia y sus posibles
excepciones.
4. Sentencias JDBC
4.1. Introducción
En este capítulo se muestra como crear y modificar una tabla. Las tablas son las estructuras de datos en las que se organiza una base de datos relacional y JDBC provee los métodos necesarios para ejecutar las sentencias SQL tanto para crearlas (sentencia CREATE), como para añadir contenidos (sentencia INSERT INTO).
A continuación se pretende dar una explicación detallada de cómo gestionar y extraer datos de dichas tablas. Estas operaciones son las más comunes cuando se trabaja con bases de datos y merecen especial atención puesto que la mayor parte del esfuerzo de desarrollo se centra siempre en ellas.
Por último se introduce el concepto de transacción que es un conjunto de una o más sentencias SQL que constituye una unidad lógica de trabajo. La atomicidad de las transacciones permite realizar operaciones de forma concurrente garantizando la corrección de las mismas.
4.2. Objetivos
Los objetivos que cubre esta
lección son los siguientes:
Crear una tabla en la base de datos desde
la interfaz que ofrece JDBC siguiendo todos los pasos necesarios.
Carga
inicial de datos en tablas vacías.
Consulta, modificación y eliminación
de registros de tablas mediante JDBC.
Conocimiento sobre el concepto de
transacción, cual es el comportamiento por defecto de JDBC al respecto
y como cambiarlo en función de las necesidades de la aplicación.
5. Resultados y metadatos
5.1.Introducción
El propósito del siguiente capítulo es mostrar las funcionalidades más avanzadas que ofrecen las hojas de resultados (ResultSet), así como las restricciones que se han de respetar y optimizaciones que se pueden realizar para mejorar el acceso a los datos.
A su vez, se realiza una explicación detallada de los desplazamientos que se pueden realizar, las actualizaciones y como añadir o borrar los datos en dichas hojas de resultados y los efectos de estas acciones sobre la base de datos.
En este capítulo se ofrece también una descripción detallada de las interfaces DatabaseMetadata y ResultsetMetadata, que muestran información sobre la base de datos objeto de la conexión (metadatos). Esto nos permite obtener información diversa sobre la base de datos con la cuál se ha establecido la conexión.
5.2. Objetivos
Los objetivos que cubre esta lección
son:
Aprender los diferentes desplazamientos que se pueden realizar a
través de un ResultSet, junto con las restricciones y límites que están
marcados dependiendo del tipo del mismo.
Conocer los pasos que se han
de seguir para poder modificar un ResultSet y las implicaciones con la
base de datos.
Saber introducir nuevas tuplas o borrarlas a un
ResultSet.
Conocer los métodos de acceso a los Metadatos de la base de
datos mediante la interfaz DatabaseMetadata.
Saber acceder a la
metainformación de los datos que se encuentran en las tablas de la base
de datos mediante la interfaz ResultsetMetadata