Comunicación con la Base de Datos.

JDBC.

JDBC, Java DataBase Connectivity, es interface estándar para BD relacionales que permite el acceso a datos, es decir posibilita la comunicación entre la capa servidora de aplicaciones y la servidora de base de datos. Proveen un acceso uniforme a las distintas bases de datos mediante el lenguaje SQL.

Nos abstrae de los detalles específicos de las BD. Nosotros escribimos el código JDBC exactamente igual independientemente de la base de datos que tengamos por debajo.

Por debajo de esta interfaz JDBC se situarán drivers específicos que implementan las interfaces JDBC. Estos drivers son los que conocen los detalles específicos de la programación de un determinado sistema gestor de base de datos. Nosotros escribimos nuestras sentencias JDBC y posteriormente, si queremos acceder a una base de datos por ejemplo Oracle, seleccionaremos el driver Oracle específico y ya está.

Los tipos de drivers JDBC disponibles son los siguientes:


Ejemplo 1.

Veamos un primer ejemplo de cómo usar esta interfaz JDBC. En este ejemplo haremos una consulta sencilla: obtendremos la hora de base de datos "select sysdate from dual", visualizando por pantalla el resultado obtenido, para verificar que podemos conectarnos con la base de datos.

El ejemplo se encuentra en el directorio:

\Curso Java\Java\ejemplos\curso3\ConexionTHIN.java

Vamos a echar un vistazo a las interfaces y clases JDBC que hemos utilizado del paquete java.sql.

Notar que estamos utilizando un driver THIN de Oracle, que es un driver tipo 4, que por tanto no necesitará tener nada de la base de datos instalado en la máquina, ni protocolo de red ni nada, sólo el driver 100% Java que deberá ser apuntado por nuestro classpath. En nuestro caso la clase que define al driver es oracle.jdbc.driver.OracleDriver.class, que nosotros tenemos en el directorio: /Curso Java/Java/ejemplos/ (a partir de este directorio está /oracle/jdbc/driver/OracleDriver.class, ya que como sabemos la clase tiene que estar en una ruta de directorios igual al nombre del paquete).


Ejemplo 2.

Este segundo ejemplo es exactamente el mismo pero realizando la conexión en lugar de a través de un driver THIN, de un driver OCI, que es un driver de tipo 3 y por lo tanto requerirá que tengamos instalado el protocolo net de Oracle.

El ejemplo se encuentra en el directorio:

\Curso Java\Java\ejemplos\curso3\ConexionOCI.java

Ahora, la clase que define al driver está en el archivo situado en el directorio /jdbc/lib/classes111.zip (que está en nuestro directorio /Curso Java/ejemplos/), y tendremos que moverla al directorio ROOT de Oracle para que el driver sea capaz de encontrar el protocolo net de Oracle, y además apuntar al archivo classes111.zip con nuestro classpath.

Este tipo de driver se utiliza cuando queremos usar ciertos aspectos avanzados de conexión a la base de datos, como por ejemplo la encriptación del protocolo de red de Oracle A.N.O. que no es soportada por el driver THIN.


Ejemplo 3.

Veamos un primer ejemplo de cómo usar esta interfaz JDBC. En este ejemplo haremos una consulta sencilla: nombres de empleados de la tabla empleados "select ename from emp", visualizando por pantalla el resultado obtenido. En lo sucesivo usaremos la conexión THIN.

El ejemplo se encuentra en el directorio:

\Curso Java\Java\ejemplos\curso3\Empleados.java

Vamos a echar un vistazo a la nueva funcionalidad JDBC usada en este ejemplo en el paquete java.sql.


Ejemplo 4.

En ocasiones lo que más penaliza una operación de base de datos es el establecimiento de la conexión más que la realización de la operación propiamente dicha. Para evitar eso en este ejemplo utilizaremos lo que se llama un broker de conexiones, es decir, un objeto que mantiene activas un número determinado de conexiones con la base de datos y cuando le viene una solicitud de conexión, le ofrece al solicitante una de estas conexiones que ya tiene activa, balanceando así las peticiones que le llegan entre las distintas conexiones que ya tiene activas. Para ello usaremos el objeto com.javaexchange.dbConnectionBroker.DbConnectionBroker (que también deberá ser apuntado por nuestro classpath.

Archivos necesarios:

\Curso Java\Java\ejemplos\curso3\EmpleadosBroker.java
\Curso Java\Java\ejemplos\com\javaexchange\dbConnectionBroker\DbConnectionBroker.class
 


Ejemplo 5.

Este ejemplo ilustra el uso de la clase java.sql.PreparedStatement que es útil para la ejecución de consultas con paso de parámetros.

El ejemplo se encuentra en el directorio:

\Curso Java\Java\ejemplos\curso3\EmpleadosPS.java


Otras clases de interés en el paquete java.sql son ResultSetMetaData, DatabaseMetaData y CallableStatement.


Ejercicio.

Realizar una clase que inserte el contenido una fila en la tabla emp.
 

 

Seguir