Área de Tecnologías de la Información y las Comunicaciones Aplicadas
Área de Tecnologías de la Información y las Comunicaciones Aplicadas Universidad de Murcia
Área de Tecnologías de la Información y las Comunicaciones Aplicadas
ATICA arrow Consultoria arrow WEBconnector arrow Acceso a Base de Datos desde Aplicaciones Web en JAVA
23.05.2012
 
 
Acceso a Base de Datos desde Aplicaciones Web en JAVA Imprimir E-mail

El objeto de este documento es establecer una norma para el acceso a datos desde las aplicaciones web desarrolladas en Java, en ATICA. Esta norma propone el uso de fuente de datos (DataSource), para tal fin.

La API JDBC (Java Data Base Connectivity) proporciona una interfaz de programación para acceso a datos de Base de Datos Relacionales desde el lenguaje de programación Java:

  • El paquete java.sql es el corazón de la API JDBC 2.0.

  • El paquete javax.sql es la API de Extensión Estándar JDBC 2.0; y proporciona la funcionalidad de fuente de datos (objeto DataSource), y agrupación de conexiones (connection pooling).

Versión 1.0

Copyright © 2004 ATICA

27/02/2004

Historial de revisiones
Revisión 1.027/02/2004juanlu

Documento inicial

Revisión 1.126/03/2004juanlu

Inclusión del paquete java atica.util desarrollado por Juanjo Meroño

Revisión 1.227/04/2004juanlu

Inclusión de los enlaces para acceder a aticaDS.jar, y a la javadoc correspondiente

Resumen

Acceso a base de datos desde java con DataSource


Una fuente de datos representa una base de datos del mundo real, como puede ser una base de datos relacional Oracle.

Cuando registramos una fuente de datos en el servicio de nombres JNDI (Java Name Directory Interface), cualquier aplicación puede recuperar la fuente de datos desde el servicio de nombres y utilizarla para realizar una conexión a la base de datos que representa.

Al usar fuentes de datos, las aplicaciones no necesitan tener información específica como el nombre de la base de datos, el ID del usuario, o la clave para obtener una conexión a BD. Todo esta información se almacena en forma de propiedades en el objeto DataSource. Esto hace que la aplicación sea más portable porque no es necesario escribir en el código el nombre del driver, lo cual frecuentemente implica incluir el nombre de un fabricante en particular.

El mantenimiento del código se hace mucho más fácil. Por ejemplo, si la Base de Datos (que representa la fuente de datos) se traslada a un servidor diferente, lo único que hay que hacer es cambiar la propiedad correspondiente en el objeto fuente de datos. El código de la aplicación que utiliza la fuente de datos no hay que tocarlo para nada.

En el caso concreto del servidor de aplicaciones WebSphere, la conexión obtenida de la fuente de datos es una conexión "agrupada" (pooled connection), es decir, cuando la aplicación cierra la conexión la devuelve a una agrupación de conexiones (connection pool), en lugar de destruirse. El objeto Connection se obtiene de una agrupación (pool) de conexiones gestionada por el servidor de aplicaciones.

Una aplicación deber seguir los siguientes pasos para acceder a una fuente de datos que representa una base de datos relacional:

Para la utilización de fuente de datos en una aplicación recomendamos utilizar el paquete atica.util; concretamente la clase atica.util.obj.HttpServletBD, si es un servlet (o atica.util.obj.ObjectBD, si es un objeto aislado); de forma que nuestra clase la extienda. La clase HttpServletBD del mencionado paquete (y su homóloga ObjectBD), acepta el nombre del DataSource como parámetro. Veamos un ejemplo de cada caso:

En el apéndice pueden verse los detalles del paquete atica.util: clases que lo componen e interrelación entre las mismas.

A. Paquete atica.util.

El paquete contiene las clases necesarias para acceder a BD usando DataSource. Ha sido desarrollado por Juan José Meroño, del Servicio de Desarrollo de ATICA. Contiene:

El paquete está instalado, como un jar (dsatica.jar), en los servidores de Sistemas (tanto en desarrollo como en explotación). Además, en Novell, en G:\Servicio de Desarrollo\MNCS\Publicado\WebConnector\Datasource\Software\aticaDS.jar, está el jar con las clases y también la javadoc correspondiente (no están los fuentes). Los enlaces son:

Javadoc del paquete aticaDS.jar

Paquete aticaDS.jar

El paquete incluye un servlet, atica.samples.SnoopServletBD, para hacer un seguimiento de las conexiones del datasource en cuestión. En la pantalla correspondiente se debe observar que el número de conexiones utilizadas debe ser igual al de las que se van liberando. A continuación están los enlaces del SnoopServletBD para Dumbo y Luci:

SnoopServletBD para Dumbo

SnoopServletBD para Luci

 
Área de Tecnologías de la Información y las Comunicaciones Aplicadas
Volver al incio del documento Volver al inicio del documento
Área de Tecnologías de la Información y las Comunicaciones Aplicadas