5. Anexos
Aquí describimos la instalación y el uso básico de las herramientas utilizadas en el documento «Persistencia en Java 5: una guía práctica». La información que se presenta a continuación es la disponible en mayo de 2007. Quedará obsoleta en breve. Cuando eso suceda, se invitará al lector a seguir pasos similares, aunque no idénticos. Las instalaciones se realizaron en una máquina con Windows XP Professional.
5.1. Java
Utilizaremos la última versión de Java disponible en Sun [http://www.sun.com]. Las descargas están disponibles en la URL [http://java.sun.com/javase/downloads/index.jsp]:


Inicie la instalación de JDK a partir del archivo descargado. Por defecto, Java se instala en [C:\Program Files\Java]:

5.2. Eclipse
5.2.1. Instalación básica
Eclipse es un IDE disponible en la URL [http://www.eclipse.org/] y se puede descargar en la URL [http://www.eclipse.org/downloads/]. A continuación descargamos Eclipse 3.2.2:
![]()
Una vez descargado el archivo zip, lo descomprimimos en una carpeta del disco:

A partir de ahora llamaremos <eclipse> a la carpeta de instalación de Eclipse, que en el ejemplo anterior es [C:\devjava\eclipse 3.2.2\eclipse]. [eclipse.exe] es el ejecutable y [eclipse.ini] es su archivo de configuración. Veamos el contenido de este último:
Estos argumentos se utilizan al iniciar Eclipse de la siguiente manera:
Se obtiene el mismo resultado que con el archivo .ini al crear un acceso directo que ejecute Eclipse con estos mismos argumentos. Explicamos cada uno de ellos:
- -vmargs: indica que los argumentos que siguen están destinados a la máquina virtual de Java que ejecutará Eclipse. Eclipse es una aplicación Java.
- -Xms40m: ?
- -Xmx256m: establece el tamaño de memoria en MB asignado a la máquina virtual de Java (JVM) que ejecuta Eclipse. Por defecto, este tamaño es de 256 MB, como se muestra aquí. Si la máquina lo permite, es preferible 512 MB.
Estos argumentos se pasan a JVM, que ejecutará Eclipse. JVM está representado por un archivo [java.exe] o [javaw.exe]. ¿Cómo se localiza este archivo? De hecho, se busca de diferentes maneras:
- en el archivo PATH del OS
- en la carpeta <JAVA_HOME>/jre/bin, donde JAVA_HOME es una variable de sistema que define la carpeta raíz de un JDK.
- en una ubicación pasada como argumento a Eclipse en el formato -vm <ruta>\javaw.exe
Esta última solución es preferible, ya que las otras dos están sujetas a los imprevistos de instalaciones posteriores de aplicaciones que pueden cambiar tanto el PATH del OS como la variable JAVA_HOME.
Por lo tanto, creamos el siguiente acceso directo:

<eclipse>\eclipse.exe" -vm "C:\Archivos de programa\Java\jre1.6.0_01\bin\javaw.exe" -vmargs -Xms40m -Xmx512m | |
carpeta <eclipse> de instalación de Eclipse |
Una vez hecho esto, iniciemos Eclipse mediante este acceso directo. Aparecerá un primer cuadro de diálogo:

Un [workspace] es un espacio de trabajo. Aceptemos los valores predeterminados propuestos. Por defecto, los proyectos de Eclipse se crearán en la carpeta <workspace> especificada en este cuadro de diálogo. Existe la posibilidad de evitar este comportamiento. Eso es lo que haremos sistemáticamente. Por lo tanto, la respuesta que se dé en este cuadro de diálogo no es importante.
Una vez completado este paso, se muestra el entorno de desarrollo de Eclipse:

Cerramos la vista [Welcome] tal como se sugirió anteriormente:

Antes de crear un proyecto Java, configuraremos Eclipse para indicar que se utilice JDK para compilar los proyectos Java. Para ello, seleccionamos la opción [Window / Preferences / Java / Installed JREs ]:

Normalmente, el JRE (Java Runtime Environment) que se utilizó para iniciar el propio Eclipse debe aparecer en la lista de JRE. Normalmente, ese será el único. Es posible agregar JRE con el botón [Add]. Para ello, hay que indicar la ruta raíz del JRE. El botón [Search], por su parte, iniciará una búsqueda de JREs en el disco. Es una buena forma de saber en qué estado se encuentran los JREs que se instalan y luego se olvida desinstalar al pasar a una versión más reciente. En la imagen anterior, el JRE marcado es el que se utilizará para compilar y ejecutar los proyectos de Java. Es el que se instaló en el párrafo 5.1 y que también se utilizó para iniciar Eclipse. Al hacer doble clic en él, se accede a sus propiedades:

Ahora, creemos un proyecto Java [File / New / Project]:
![]() | ![]() |
Selecciona [Java Project], luego [Next] ->

En [2], indicamos una carpeta vacía en la que se instalará el proyecto Java. En [1], le damos un nombre al proyecto. No es necesario que lleve el mismo nombre que su carpeta, como podría sugerir el ejemplo anterior. Una vez hecho esto, utilizamos el botón [Next] para pasar a la siguiente página del asistente de creación:

Arriba, creamos una carpeta especial en el proyecto para guardar los archivos fuente (.java):

![]() |
- En [1], vemos la carpeta [src], en la que se guardarán los archivos fuente .java
- En [2], vemos la carpeta [bin], en la que se guardarán los archivos compilados .class
Terminamos el asistente con [Finish]. Ahora tenemos un esqueleto de proyecto Java:

Hagamos clic con el botón derecho del ratón en el proyecto [test1] para crear una clase Java:

![]() |
- en [1], la carpeta donde se creará la clase. Eclipse propone por defecto la carpeta del proyecto actual.
- en [2], el paquete en el que se colocará la clase
- en [3], el nombre de la clase
- en [4], solicitamos que se genere el método estático [main]
Confirmamos el asistente mediante [Finish]. El proyecto se enriquece entonces con una clase:

Eclipse ha generado el esqueleto de la clase. Se puede acceder a él haciendo doble clic en [Test1.java], como se muestra arriba:

Modificamos el código anterior de la siguiente manera:

Ejecutamos el programa [Test1.java]: [clic droit sur Test1.java -> Run As -> Java Application]

El resultado de la ejecución se muestra en la ventana [Console]:

La ventana [Console] debe aparecer por defecto. Si no fuera así, se puede solicitar su visualización mediante [Window/Show View/Console]:

5.2.2. Selección del compilador
Eclipse permite generar código compatible con Java 1.4, Java 1.5 y Java 1.6. Por defecto, está configurado para generar código compatible con Java 1.4. El API JPA requiere código Java 1.5. Cambiamos el tipo de código generado por [Window / Preferences / Java / Compiler]:
![]() |
- a [1]: selección de la opción [Java / Compiler]
- a [2]: selección de la compatibilidad con Java 5.0
5.2.3. Instalación de los complementos de Callisto
La versión básica instalada anteriormente permite desarrollar aplicaciones Java de consola, pero no aplicaciones Java de tipo web o Swing; de lo contrario, hay que hacerlo todo por cuenta propia. Vamos a instalar varios complementos:
Procedamos de la siguiente manera [Help/Software Udates/Find and Install]:
![]() |
- En [2], indicamos que queremos instalar nuevos complementos
![]() |
- en [3], se indican los sitios que se deben explorar para encontrar los complementos
- En [4], se marcan los complementos deseados
![]() |
- en [5], Eclipse indica que se ha elegido un complemento que depende de otros complementos que no se han seleccionado
- en [6], se utiliza el botón [Select Required] para seleccionar automáticamente los complementos que faltan
- en [7], se aceptan los términos de las licencias de estos distintos complementos
![]() |
- En [8], se muestra la lista de todos los complementos que se instalarán
- en [9], se inicia la descarga de estos complementos
- en [10], una vez descargados, se instalan todos sin verificar su firma
![]() |
- en [11], al finalizar la instalación de los complementos, dejamos que Eclipse se reinicie
- en [12]; si se ejecuta [File/New/Project], se observa que ahora es posible crear aplicaciones web, lo cual no era posible inicialmente.
5.2.4. Instalación del complemento [TestNG]
TestNG (Test Next Generation) es una herramienta de pruebas unitarias similar en su concepto a JUnit. Sin embargo, aporta mejoras que nos hacen preferirla aquí a JUnit. Procedemos como antes: [Help/Software Udates/Find and Install]:
![]() |
- en [2], indicamos que queremos instalar nuevos complementos
![]() |
- en [3a], el sitio de descarga de [TestNG] no aparece. Lo agregamos con [3b]
- en [4b]: el sitio del complemento es [http://beust.com/eclipse]. En [4a], se pone lo que se desee.
![]() |
- En [5a], se selecciona el complemento [TestNG] para la actualización. En [5b], se inicia la actualización.
- En [6], se ha establecido la conexión con el sitio web del complemento. Se nos muestran todos los complementos disponibles en el sitio. Aquí hay solo uno, que seleccionamos antes de pasar al siguiente paso.
![]() |
- En [7], aceptamos los términos de la licencia del complemento
- en [8], se muestra la lista de todos los complementos que se instalarán; aquí hay uno. Iniciamos la descarga. A continuación, todo se desarrolla tal como se describió anteriormente para los complementos de Callisto.
Una vez reiniciado Eclipse, se puede comprobar la presencia del nuevo complemento solicitando, por ejemplo, ver las vistas disponibles [Window / show View / Other]:
![]() |
Como vemos arriba, existe una vista [TestNG] que antes no existía.
5.2.5. Instalación del complemento [Hibernate Tools]
Hibernate es un proveedor JPA y el complemento [Hibernate Tools] para Eclipse resulta útil en el desarrollo de aplicaciones JPA. En mayo de 2007, solo su última versión (3.2.0beta9) permite trabajar con Hibernate/JPA y no está disponible a través del mecanismo que acabamos de describir. Solo lo están las versiones anteriores. Por lo tanto, procederemos de otra manera.
El complemento está disponible en el sitio web de Hibernate Tools: http://tools.hibernate.org/.
![]() |
- en [1], seleccionamos la última versión de Hibernate Tools
- en [2], la descargamos
![]() |
- en [3], con un programa de descompresión, descomprimimos en la carpeta <eclipse> el archivo zip descargado (es preferible que Eclipse no esté activo)
- en [4], se acepta que algunos archivos se sobrescriban durante la operación
Se reinicia Eclipse:
![]() |
- en [1]: abrimos una perspectiva
- en [2]: ahora existe una perspectiva [Hibernate Console]
No seguiremos adelante con el complemento [Hibernate Tools] (Cancel en [2]). Su modo de uso se explica en los ejemplos del tutorial.
A veces, Eclipse no detecta la presencia de nuevos complementos. Se le puede obligar a volver a escanear todos sus complementos con la opción -clean. De esta manera, el ejecutable del acceso directo de Eclipse se modificaría de la siguiente manera:
"<eclipse>\eclipse.exe" -clean -vm "C:\Program Files\Java\jre1.6.0_01\bin\javaw.exe" -vmargs -Xms40m -Xmx512m
Una vez que Eclipse haya detectado los nuevos complementos, se eliminará la opción -clean mencionada anteriormente.
5.2.6. Instalación del complemento [SQL Explorer]
Ahora instalaremos un complemento que nos permitirá explorar el contenido de una base de datos directamente desde Eclipse. Los complementos disponibles para Eclipse se pueden encontrar en el sitio web [http://eclipse-plugins.2y.net/eclipse/plugins.jsp]:
![]() |
- en [1]: el sitio de los complementos de Eclipse
- en [2]: elige la categoría [Database]
- en [3]: en la categoría [Database], elige la vista por clasificación (poco confiable dado el bajo número de personas que votan)
- en [4]: QuantumDB ocupa el primer lugar
- en [5]: elegimos SQLExplorer, más antiguo, con peor calificación (tercero), pero muy bueno de todos modos. Vamos al sitio web del complemento [plugin-homepage]
![]() |
- en [6] y [7]: procedemos a descargar el complemento.
![]() |
- en [8]: descomprimimos el archivo zip del complemento en la carpeta de Eclipse.
Para verificarlo, reinicia Eclipse, si es necesario con la opción -clean:
![]() |
- en [1]: abre una nueva perspectiva
- en [2]: se observa que hay una perspectiva [SQL Explorer] disponible. Volveremos a ella más adelante.
5.3. El contenedor de servlets Tomcat 5.5
5.3.1. Instalación
Para ejecutar servlets, necesitamos un contenedor de servlets. Aquí presentamos uno de ellos, Tomcat 5.5, disponible en la URL http://tomcat.apache.org/. A continuación, indicamos los pasos (mayo de 2007) para instalarlo. Si ya hay una versión anterior de Tomcat instalada, es mejor desinstalarla primero.

Para descargar el producto, siga el enlace [Tomcat 5.x] que aparece arriba:

Se puede descargar el archivo .exe para la plataforma Windows. Una vez descargado, inicie la instalación de Tomcat haciendo doble clic en él:

Acepta los términos de la licencia ->

Hacer [next] ->

Aceptar la carpeta de instalación propuesta o cambiarla con [Browse] ->

Establecer el nombre de usuario y la contraseña del administrador del servidor Tomcat. Aquí se ha establecido [admin / admin] ->
![]() |
Tomcat 5.x requiere JRE 1.5. Normalmente debería encontrar la versión instalada en su equipo. Arriba, la ruta indicada es la de JRE 1.6, descargada en el párrafo 5.1. Si no se encuentra ningún JRE, especifique su directorio raíz utilizando el botón [1]. Una vez hecho esto, utilice el botón [Install] para instalar Tomcat 5.x ->

El botón [Finish] finaliza la instalación. La presencia de Tomcat se indica mediante un ícono a la derecha en la barra de tareas de Windows:

Al hacer clic con el botón derecho en este ícono, se accede a los comandos de encendido y apagado del servidor:

Utilizamos la opción [Stop service] para detener ahora el servidor web:

Obsérvese el cambio de estado del ícono. Este último se puede eliminar de la barra de tareas:

La instalación de Tomcat se realizó en la carpeta elegida por el usuario, a la que a partir de ahora llamaremos <tomcat>. La estructura de esta carpeta para la versión Tomcat 5.5.23 descargada es la siguiente:

La instalación de Tomcat ha añadido varios accesos directos al menú [Démarrer]. Utilizamos el enlace [Monitor] que aparece a continuación para iniciar la herramienta de inicio y detención de Tomcat:

Entonces vemos el ícono que se mostró anteriormente:

El monitor de Tomcat se puede activar haciendo doble clic en este ícono:

Los botones [Start - Stop - Pause] - Reiniciar nos permiten iniciar, detener y reiniciar el servidor. Iniciamos el servidor con [Start] y, luego, con un navegador, accedemos a la URL http://localhost:8080. Deberíamos ver una página similar a la siguiente:

Podemos seguir los enlaces a continuación para verificar que Tomcat se haya instalado correctamente:

Todos los enlaces de la página [http://localhost:8080] son de interés y se invita al lector a explorarlos. Tendremos la oportunidad de volver sobre los enlaces que permiten administrar las aplicaciones web implementadas en el servidor:

5.3.2. Implementación de una aplicación web en el servidor Tomcat
5.3.3. Despliegue
Una aplicación web debe cumplir ciertas reglas para poder implementarse en un contenedor de servlets. Sea <webapp> la carpeta de una aplicación web. Una aplicación web se compone de:
en la carpeta <webapp>\WEB-INF\classes | |
en la carpeta <webapp>\WEB-INF\lib | |
en la carpeta <webapp> o en sus subcarpetas |
La aplicación web se configura mediante un archivo XML: <webapp>\WEB-INF\web.xml. Este archivo no es necesario en casos sencillos, especialmente cuando la aplicación web solo contiene archivos estáticos. Creemos el siguiente archivo HTML:
<html>
<head>
<title>Application exemple</title>
</head>
<body>
Application exemple active ....
</body>
</html>
y guardémoslo en una carpeta:

Si cargamos este archivo en un navegador, obtenemos la siguiente página:

El código URL que muestra el navegador indica que la página no fue servida por un servidor web, sino que fue cargada directamente por el navegador. Ahora queremos que esté disponible a través del servidor web Tomcat.
Volvamos a la estructura de directorios de <tomcat>:

La configuración de las aplicaciones web implementadas en el servidor Tomcat se realiza mediante archivos XML ubicados en la carpeta [<tomcat>\conf\Catalina\localhost]:
![]() | ![]() |
Estos archivos XML se pueden crear manualmente, ya que su estructura es sencilla. En lugar de seguir este procedimiento, utilizaremos las herramientas web que nos ofrece Tomcat.
5.3.4. Administración de Tomcat
En su página de inicio http://localhost:8080, el servidor nos ofrece enlaces para administrarlo:

El enlace [Tomcat Administration] nos permite configurar los recursos que Tomcat pone a disposición de las aplicaciones web implementadas en él, por ejemplo, un grupo de conexiones a una base de datos. Sigamos el enlace:

La página que aparece nos indica que la administración de Tomcat 5.x requiere un paquete específico llamado «admin». Regresemos al sitio de Tomcat [http://tomcat.apache.org/download-55.cgi]:

Descarguemos el archivo zip denominado [Administration Web Application] y luego descomprímamolo. Su contenido es el siguiente:

La carpeta [admin] debe copiarse en [<tomcat>\server\webapps], donde <tomcat> es la carpeta en la que se instaló Tomcat 5.x:

La carpeta [localhost] contiene un archivo [admin.xml] que debe copiarse en [<tomcat>\conf\Catalina\localhost]:

Detengamos y luego reiniciemos Tomcat si estaba activo. A continuación, con un navegador, volvamos a acceder a la página de inicio del servidor web:

Sigamos el enlace [Tomcat Administration]. Aparecerá una página de inicio de sesión (para que aparezca, es posible que tengas que «recarregar» o «actualizar» la página):
![]() | ![]() |
Aquí hay que volver a ingresar la información que proporcionamos durante la instalación de Tomcat. En nuestro caso, ingresamos el par admin / admin. El botón [Login] nos lleva a la siguiente página:

Esta página permite al administrador de Tomcat definir
- fuentes de datos (Data Sources),
- la información necesaria para el envío de correo (Mail Sessions),
- los datos de entorno accesibles para todas las aplicaciones (Entries de entorno),
- administrar a los usuarios y administradores de Tomcat (Users),
- administrar grupos de usuarios (Groups),
- definir roles (= lo que un usuario puede o no puede hacer),
- definir las características de las aplicaciones web implementadas por el servidor (Service Catalina)
Sigamos el enlace [Roles] que aparece arriba:

Un rol permite definir lo que un usuario o un grupo de usuarios puede o no puede hacer. A un rol se le asignan ciertos derechos. Cada usuario está asociado a uno o más roles y cuenta con los derechos de estos. El rol [manager] que se muestra a continuación otorga el derecho de administrar las aplicaciones web implementadas en Tomcat (implementación, inicio, detención, descarga). Vamos a crear un usuario [manager] al que le asignaremos el rol [manager] para permitirle administrar las aplicaciones de Tomcat. Para ello, seguimos el enlace [Users] de la página de administración:

Vemos que ya hay varios usuarios. Usamos la opción [Create New User] para crear un nuevo usuario:

Le asignamos al usuario «manager» la contraseña «manager» y le asignamos el rol «manager». Utilizamos el botón [Save] para confirmar esta adición. El nuevo usuario aparece en la lista de usuarios:

Este nuevo usuario se agregará al archivo [<tomcat>\conf\tomcat-users.xml]:

cuyo contenido es el siguiente:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="manager" password="manager" fullName="" roles="manager"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
- línea 10: el usuario [manager] que se ha creado
Otra forma de agregar usuarios es modificar directamente este archivo. Este es el procedimiento que se debe seguir, por ejemplo, si por casualidad se ha olvidado la contraseña del administrador «admin» o del «manager».
5.3.5. Administración de las aplicaciones web implementadas
Ahora regresemos a la página de inicio [http://localhost:8080] y sigamos el enlace [Tomcat Manager]:

A continuación, aparece una página de autenticación. Nos identificamos como manager / manager, c.a.d, el usuario con el rol [manager] que acabamos de crear. De hecho, solo un usuario con este rol puede utilizar este enlace. En la línea 11 de [tomcat-users.xml], vemos que el usuario [admin] también tiene el rol [manager]. Por lo tanto, también podríamos utilizar la autenticación [admin / admin].

Obtenemos una página que muestra las aplicaciones actualmente implementadas en Tomcat:

Podemos agregar una nueva aplicación mediante los formularios que se encuentran al final de la página:

En este caso, queremos implementar en Tomcat la aplicación de ejemplo que creamos anteriormente. Lo hacemos de la siguiente manera:

/ejemplo | el nombre utilizado para designar la aplicación web que se va a implementar | |
C:\data\trabajo\2006-2007\eclipse\dvp-jpa\anexos\tomcat\ejemplo | la carpeta de la aplicación web |
Para obtener el archivo [C:\data\travail\2006-2007\eclipse\dvp-jpa\annexes\tomcat\exemple\exemple.html], le pediremos a Tomcat el URL y el [http://localhost:8080/exemple/exemple.html]. El contexto sirve para asignar un nombre a la raíz del árbol de la aplicación web desplegada. Utilizamos el botón [Deploy] para llevar a cabo el despliegue de la aplicación. Si todo sale bien, obtenemos la siguiente página de respuesta:

y la nueva aplicación aparece en la lista de aplicaciones implementadas:
![]() |
Comentemos la línea del contexto /ejemplo anterior:
enlace a http://localhost:8080/exemple | |
permite iniciar la aplicación | |
permite detener la aplicación | |
permite recargar la aplicación. Esto es necesario, por ejemplo, cuando se han agregado, modificado o eliminado ciertas clases de la aplicación. | |
Eliminación del contexto [/exemple]. La aplicación desaparece de la lista de aplicaciones disponibles. |
Ahora que nuestra aplicación /ejemplo está implementada, podemos realizar algunas pruebas. Accedemos a la página [exemple.html] a través de la URL [http://localhost:8080/exemple/vues/exemple.html]:

Otra forma de implementar una aplicación web en el servidor Tomcat es introducir la información que proporcionamos a través de la interfaz web en un archivo [contexte].xml ubicado en la carpeta [<tomcat>\conf\Catalina\localhost], donde [contexte] es el nombre de la aplicación web.
Volvamos a la interfaz de administración de Tomcat:

Eliminemos la aplicación [/exemple] junto con su enlace [Undeploy]:

La aplicación [/exemple] ya no forma parte de la lista de aplicaciones activas. Ahora definamos el siguiente archivo [exemple.xml]:
El archivo XML consta de una única etiqueta <Context> cuyo atributo docBase define la carpeta que contiene la aplicación web que se va a implementar. Coloquemos este archivo en <tomcat>\conf\Catalina\localhost:

Detengamos y reiniciemos Tomcat si es necesario, y luego veamos la lista de aplicaciones activas con el administrador de Tomcat:

La aplicación [/exemple] aparece correctamente. Accedamos, con un navegador, a la URL:
[http://localhost:8080/exemple/exemple.html]:

Una aplicación web implementada de esta manera puede eliminarse de la lista de aplicaciones implementadas, de la misma manera que antes, mediante el enlace [Undeploy]:

En este caso, el archivo [exemple.xml] se elimina automáticamente de la carpeta [<tomcat>\conf\Catalina\localhost].
Por último, para implementar una aplicación web en Tomcat, también se puede definir su contexto en el archivo [<tomcat>\conf\server.xml]. No profundizaremos en este punto aquí.
5.3.6. Aplicación web con página de inicio
Cuando solicitamos la URL [http://localhost:8080/exemple/], obtenemos la siguiente respuesta:

Con algunas versiones anteriores de Tomcat, hubiéramos obtenido el contenido de la carpeta física de la aplicación [/exemple].
Podemos hacer que, cuando se solicite el contexto, se muestre una página de inicio. Para ello, creamos un archivo [web.xml] que colocamos en la carpeta <ejemplo>\WEB-INF, donde <ejemplo> es la carpeta física de la aplicación web [/exemple]. Este archivo es el siguiente:
- líneas 2-5: la etiqueta raíz <web-app> con atributos obtenidos al copiar y pegar del archivo [web.xml] de la aplicación [/admin] de Tomcat (<tomcat>/server/webapps/admin/WEB-INF/web.xml).
- línea 7: el nombre de visualización de la aplicación web. Es un nombre libre que tiene menos restricciones que el nombre de contexto de la aplicación. Se pueden incluir espacios, por ejemplo, lo cual no es posible con el nombre de contexto. Este nombre lo muestra, por ejemplo, el administrador de Tomcat:

- línea 8: descripción de la aplicación web. Este texto se puede obtener posteriormente mediante programación.
- líneas 9-11: la lista de archivos de bienvenida. La etiqueta <welcome-file-list> sirve para definir la lista de vistas que se mostrarán cuando un cliente solicite el contexto de la aplicación. Puede haber varias vistas. Se muestra al cliente la primera que se encuentre. Aquí solo tenemos una: [/exemple.html]. Así, cuando un cliente solicite la URL [/exemple], en realidad se le entregará la URL [/exemple/exemple.html].
Guardemos este archivo [web.xml] en <ejemplo>\WEB-INF:

Si Tomcat sigue activo, es posible forzar que recargue la aplicación web [/exemple] con el enlace [Recharger]:

Durante esta operación de «recarga», Tomcat vuelve a leer el archivo [web.xml] contenido en [<exemple>\WEB-INF], si existe. Este será el caso aquí. Si Tomcat se hubiera detenido, reinícialo.
Con un navegador, solicitemos el archivo URL y [http://localhost:8080/exemple/]:

El mecanismo de los archivos de bienvenida ha funcionado.
5.3.7. Integración de Tomcat en Eclipse
Ahora vamos a integrar Tomcat en Eclipse. Esta integración permite:
- iniciar y detener Tomcat desde Eclipse
- desarrollar aplicaciones web en Java y ejecutarlas en Tomcat. La integración entre Eclipse y Tomcat permite depurar la ejecución de la aplicación, incluyendo la ejecución de las clases de Java (servlets) ejecutadas por Tomcat.
Iniciemos Eclipse y luego veamos la vista [Servers]:
![]() |
- en [1]: Ventana/Mostrar vista/Otra
- en [2]: selecciona la vista [Servers] y haz [OK]
![]() |
- en [1], tenemos una nueva vista [Servers]
- en [2], haz clic con el botón derecho en la vista y solicita crear un nuevo servidor [New/Server]
- en [3], se selecciona el servidor [Tomcat 5.5] y luego se pasa a [Next]
![]() |
- a [4], se indica la carpeta de instalación de Tomcat 5.5
- en [5], se indica que por el momento no hay proyectos de Eclipse/Tomcat. Se ejecuta [Finish]
La adición del servidor se concreta con la incorporación de una carpeta en el explorador de proyectos de Eclipse [6] y la aparición de un servidor en la vista [servers] [7]:
![]() |
En la vista [Servers] aparecen todos los servidores registrados; en este caso, solo el servidor Tomcat 5.5 que acabamos de registrar. Al hacer clic con el botón derecho sobre él, se accede a los comandos que permiten iniciar, detener y reiniciar el servidor:

En la imagen anterior, iniciamos el servidor. Al iniciarse, se registran varios registros en la vista [Console]:
Entender estos registros requiere cierta práctica. No nos detendremos en ellos por el momento. Sin embargo, es importante verificar que no indiquen errores al cargar los contextos. De hecho, al iniciarse, el servidor Tomcat/Eclipse intentará cargar el contexto de las aplicaciones que administra. Cargar el contexto de una aplicación implica procesar su archivo [web.xml] y cargar una o varias clases que lo inicializan. En este proceso pueden ocurrir varios tipos de errores:
- el archivo [web.xml] tiene errores de sintaxis. Este es el error más frecuente. Se recomienda utilizar una herramienta capaz de verificar la validez de un documento XML durante su creación.
- No se encontraron algunas de las clases que se deben cargar. Estas se buscan en [WEB-INF/classes] y [WEB-INF/lib]. Por lo general, hay que verificar la presencia de las clases necesarias y la ortografía de las declaradas en el archivo [web.xml].
El servidor iniciado desde Eclipse no tiene la misma configuración que el instalado en el párrafo 5.3. Para asegurarnos de ello, solicitemos la URL [http://localhost:8080] con un navegador:

Esta respuesta no indica que el servidor no funcione, sino que el recurso / que se le solicita no está disponible. Con el servidor Tomcat integrado en Eclipse, estos recursos serán proyectos web. Lo veremos más adelante. Por ahora, detengamos Tomcat:

El modo de funcionamiento anterior se puede modificar. Regresemos a la vista [Servers] y hagamos doble clic en el servidor Tomcat para acceder a sus propiedades:
![]() | 1 ![]() |
La casilla de selección [1] es la responsable del funcionamiento anterior. Cuando está marcada, las aplicaciones web desarrolladas en Eclipse no se declaran en los archivos de configuración del servidor Tomcat asociado, sino en archivos de configuración separados. Al hacerlo, no se dispone de las aplicaciones definidas por defecto en el servidor Tomcat: [admin] y [manager], que son dos aplicaciones útiles. Por lo tanto, vamos a desmarcar [1] y reiniciar Tomcat:
![]() | ![]() |
Una vez hecho esto, accedamos a la URL [http://localhost:8080] con un navegador:

Vemos aquí el funcionamiento descrito en el párrafo 5.3.4.
En nuestros ejemplos anteriores, utilizamos un navegador externo a Eclipse. También se puede utilizar un navegador interno de Eclipse:

En la imagen anterior, seleccionamos el navegador interno. Para iniciarlo desde Eclipse, se puede utilizar el siguiente ícono:

El navegador que realmente se iniciará será el seleccionado mediante la opción [Window -> Web Browser]. En este caso, obtenemos el navegador interno:
1

Si es necesario, iniciemos Tomcat desde Eclipse y solicitemos en [1] la URL [http://localhost:8080]:

Sigamos el enlace [Tomcat Manager]:

Se solicita el par [login / mot de passe] necesario para acceder a la aplicación [manager]. Según la configuración de Tomcat que hicimos anteriormente, podemos ingresar [admin / admin] o [manager / manager]. A continuación, se muestra la lista de aplicaciones implementadas:

5.4. SGBD Firebird
5.4.1. SGBD Firebird
El SGBD Firebird está disponible en la URL [http://www.firebirdsql.org/]:
![]() |
- en [1]: se utiliza la opción [Download.Firebird Relational Database]
- en [2]: se especifica la versión deseada de Firebird
- en [3]: se descarga el archivo binario de instalación
Una vez descargado el archivo [3], haz doble clic en él para instalar Firebird SGBD. El archivo SGBD se instala en una carpeta cuyo contenido es similar al siguiente:

Los archivos binarios se encuentran en la carpeta [bin]:

permite iniciar/detener el SGBD | |
cliente de línea que permite administrar bases de datos |
Cabe señalar que, por defecto, el administrador de SGBD se llama [SYSDBA] y su contraseña es [masterkey]. Se han instalado menús en [Démarrer]:

La opción [Firebird Guardian] permite iniciar o detener el SGBD. Tras el inicio, el ícono del SGBD permanece en la barra de tareas de Windows:
![]() |
Para crear y administrar bases de datos Firebird con el cliente de línea de comandos [isql.exe], es necesario leer la documentación que se incluye con el producto y a la que se puede acceder a través de los accesos directos de Firebird en [Démarrer/Programmes/Firebird 2.0].
Una forma rápida de trabajar con Firebird y aprender el lenguaje SQL es utilizar un cliente gráfico. Un ejemplo de este tipo de cliente es IB-Expert, que se describe en el párrafo siguiente.
5.4.2. Trabajar con Firebird SGBD con IB- Expert
El sitio web principal de IB-Expert es [http://www.ibexpert.com/].
![]() |
![]() |
- en [1], se selecciona IBExpert
- En [2], se selecciona la descarga después de haber elegido, si es necesario, el idioma deseado
- en [3], se selecciona la versión denominada «personal», ya que es gratuita. Sin embargo, es necesario registrarse en el sitio.
- En [4], se descarga IBExpert
IBExpert se instala en una carpeta similar a la siguiente:

El ejecutable es [ibexpert.exe]. Normalmente hay un acceso directo disponible en el menú [Démarrer]:

Una vez ejecutado, IBExpert muestra la siguiente ventana:

Usemos la opción [Database/Create Database] para crear una base de datos:

puede ser [local] o [remote]. Aquí nuestro servidor está en la misma máquina que [IBExpert]. Elegimos [local] | |
utilizar el botón del tipo [dossier] del menú desplegable para seleccionar el archivo de la base de datos. Firebird coloca toda la base de datos en un solo archivo. Esa es una de sus ventajas. La base de datos se transfiere de una computadora a otra simplemente copiando el archivo. El sufijo [.fdb] se agrega automáticamente. | |
SYSDBA es el administrador predeterminado de las distribuciones actuales de Firebird | |
masterkey es la contraseña del administrador SYSDBA de las distribuciones actuales de Firebird | |
el dialecto SQL que se debe utilizar | |
si la casilla está marcada, IBExpert mostrará un enlace a la base de datos creada después de haberla creado |
Si al hacer clic en el botón de creación [OK] aparece el siguiente aviso:

es porque no has iniciado Firebird. Inícialo. Aparecerá una nueva ventana:

Familia de caracteres a utilizar. Se recomienda seleccionar en la lista desplegable la familia [ISO-8859-1], que permite utilizar los caracteres latinos acentuados. |
[IBExpert] es capaz de manejar diferentes SGBD derivados de Interbase. Seleccione la versión de Firebird que tenga instalada. |
Una vez que [Register] haya validado esta nueva ventana, obtendremos el resultado [1] en la ventana [Database Explorer]. Es posible que esta ventana se cierre por error. Para recuperarla, ejecute [2]:
![]() |
Para acceder a la base de datos creada, basta con hacer doble clic en su enlace. IBExpert muestra entonces un árbol de navegación que permite acceder a las propiedades de la base de datos:

5.4.3. Creación de una tabla de datos
Creemos una tabla. Hacemos clic con el botón derecho en [Tables] (véase la ventana anterior) y seleccionamos la opción [New Table]. Aparece la ventana de definición de las propiedades de la tabla:
![]() |
Comencemos por asignarle el nombre [ARTICLES] a la tabla utilizando el campo de entrada [1]:

Usemos el campo de entrada [2] para definir una clave primaria [ID]:

Para convertir un campo en clave primaria, haz doble clic en el campo [PK] (Primary Key) del campo. Agreguemos campos con el botón ubicado encima de [3]:

Mientras no hayamos «compilado» nuestra definición, la tabla no se creará. Usemos el botón [Compile] que se encuentra arriba para finalizar la definición de la tabla. IBExpert prepara las consultas SQL para generar la tabla y solicita confirmación:

Curiosamente, IBExpert muestra las consultas SQL que ha ejecutado. Esto permite aprender tanto el lenguaje SQL como el dialecto SQL, que posiblemente sea propio y se utilice. El botón [Commit] permite validar la transacción en curso, mientras que [Rollback] la cancela. Aquí la aceptamos con [Commit]. Una vez hecho esto, IBExpert agrega la tabla creada a la estructura de nuestra base de datos:

Al hacer doble clic en la tabla, se accede a sus propiedades:

El panel [Constraints] nos permite agregar nuevas restricciones de integridad a la tabla. Abrámoslo:

Aquí encontramos la restricción de clave primaria que creamos. Podemos agregar otras restricciones:
- claves externas [Foreign Keys]
- restricciones de integridad de campos [Checks]
- restricciones de unicidad de campos [Uniques]
Tenga en cuenta que:
- los campos [ID, PRIX, STOCKACTUEL, STOKMINIMUM] deben ser >0
- el campo [NOM] debe ser distinto de vacío y único
Abramos el panel [Checks] y hagamos clic con el botón derecho en su área de definición de restricciones para agregar una nueva restricción:

Definamos las restricciones deseadas:

Cabe señalar que la restricción [NOM<>''] utiliza dos apóstrofos y no comillas. Compilemos estas restricciones con el botón [Compile] que se encuentra arriba:

Una vez más, IBExpert demuestra su carácter didáctico al indicar las consultas SQL que ha ejecutado. Pasemos ahora al panel [Constraints/Uniques] para indicar que el nombre debe ser único. Esto significa que no puede haber dos nombres iguales en la tabla.

Definamos la restricción:

Luego, compilémosla. Una vez hecho esto, abramos el panel [DDL] (Lenguaje de Definición de Datos) de la tabla [ARTICLES]:

Este panel proporciona el código SQL para generar la tabla con todas sus restricciones. Podemos guardar este código en un script para ejecutarlo más adelante:
SET SQL DIALECT 3;
SET NAMES ISO8859_1;
CREATE TABLE ARTICLES (
ID INTEGER NOT NULL,
NOM VARCHAR(20) NOT NULL,
PRIX DOUBLE PRECISION NOT NULL,
STOCKACTUEL INTEGER NOT NULL,
STOCKMINIMUM INTEGER NOT NULL
);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_ID check (ID>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_PRIX check (PRIX>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKACTUEL check (STOCKACTUEL>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKMINIMUM check (STOCKMINIMUM>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_NOM check (NOM<>'');
ALTER TABLE ARTICLES ADD CONSTRAINT UNQ_NOM UNIQUE (NOM);
ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY (ID);
5.4.4. Inserción de datos en una tabla
Ahora es el momento de ingresar datos en la tabla [ARTICLES]. Para ello, utilicemos su panel [Data]:

Los datos se ingresan haciendo doble clic en los campos de entrada de cada fila de la tabla. Se agrega una nueva fila con el botón [+] y se elimina una fila con el botón [-]. Estas operaciones se realizan en una transacción que se valida con el botón [Commit Transaction] (véase más arriba). Sin esta validación, los datos se perderán.
5.4.5. El editor SQL de [IB-Expert]
El lenguaje SQL (Lenguaje de Consulta Estructurado) permite al usuario:
- crear tablas especificando el tipo de datos que almacenarán y las restricciones que dichos datos deben cumplir
- insertar datos en ellas
- modificar algunos de ellos
- eliminar otros
- explotar su contenido para obtener información
- ...
IBExpert permite a un usuario realizar las operaciones del 1 al 4 de manera gráfica. Acabamos de verlo. Cuando la base de datos contiene numerosas tablas, cada una con cientos de filas, se necesita información que es difícil de obtener visualmente. Supongamos, por ejemplo, que una tienda virtual en la web tiene miles de compradores al mes. Todas las compras se registran en una base de datos. Al cabo de seis meses, se descubre que un producto «X» tiene fallas. Se desea contactar a todas las personas que lo compraron para que devuelvan el producto y lo cambien sin costo alguno. ¿Cómo encontrar las direcciones de estos compradores?
- Se pueden revisar visualmente todas las tablas y buscar a esos compradores. Esto tomará unas horas.
- Se puede ejecutar una orden SQL que generará la lista de estas personas en unos segundos
El lenguaje SQL resulta útil siempre que
- la cantidad de datos en las tablas es considerable
- cuando hay muchas tablas relacionadas entre sí
- la información que se busca está distribuida en varias tablas
- ...
Ahora presentamos el editor SQL de IBExpert. Se puede acceder a él mediante la opción [Tools/SQL Editor] o [F12]:

De esta manera, tenemos acceso a un editor avanzado de consultas SQL con el que podemos experimentar con consultas. Escribamos una consulta:

Ejecutamos la consulta SQL con el botón [Execute] que se encuentra arriba. Obtenemos el siguiente resultado:

Arriba, la pestaña [Results] muestra la tabla de resultados de la orden SQL [Select]. Para emitir una nueva orden SQL, basta con regresar a la pestaña [Edit]. Allí se encuentra la orden SQL que ya se ejecutó.

Varios botones de la barra de herramientas son útiles:
- el botón [New Query] permite pasar a una nueva consulta SQL:

A continuación, aparece una página de edición en blanco:

A continuación, se puede ingresar una nueva orden SQL:

y ejecutarla:

Volvamos a la pestaña [Edit]. Las diferentes órdenes SQL emitidas se almacenan mediante [IBExpert]. El botón [Previous Query] permite regresar a una orden SQL emitida anteriormente:

De esta manera, se regresa a la consulta anterior:

El botón [Next Query] permite, por su parte, pasar a la orden siguiente, SQL:

A continuación, se encuentra la orden SQL, que sigue en la lista de órdenes SQL guardadas:

El botón [Delete Query] permite eliminar una orden SQL de la lista de órdenes guardadas:

El botón [Clear Current Query] permite borrar el contenido del editor para la orden SQL que se muestra:

El botón [Commit] permite confirmar definitivamente los cambios realizados en la base de datos:

El botón [RollBack] permite deshacer los cambios realizados en la base de datos desde el último [Commit]. Si no se ha ejecutado ningún [Commit] desde que se conectó a la base de datos, entonces se deshacen los cambios realizados desde esa conexión.

Veamos un ejemplo. Insertemos una nueva fila en la tabla:

Se ejecuta el comando SQL, pero no se muestra nada. No sabemos si la inserción se ha realizado. Para averiguarlo, ejecutemos el comando SQL después de [New Query]:

Se obtiene el siguiente resultado con [Execute]:

Por lo tanto, la fila se ha insertado correctamente. Ahora revisemos el contenido de la tabla de otra manera. Hagamos doble clic en la tabla [ARTICLES] en el explorador de bases de datos:

Se obtiene la siguiente tabla:

El botón con la flecha que se muestra arriba permite actualizar la tabla. Tras la actualización, la tabla anterior no cambia. Da la impresión de que la nueva fila no se ha insertado. Regresemos al editor SQL (F12) y luego validemos la orden SQL emitida con el botón [Commit]:

Una vez hecho esto, regresemos a la tabla [ARTICLES]. Podemos observar que nada ha cambiado, incluso al utilizar el botón [Refresh]:

Ahora, abramos la pestaña [Fields] y luego regresemos a la pestaña [Data]. Esta vez, la línea insertada aparece correctamente:

Cuando comienza la ejecución de las diferentes órdenes SQL, el editor abre lo que se conoce como una transacción en la base de datos. Los cambios realizados por estas órdenes SQL del editor SQL solo serán visibles mientras permanezcamos en el mismo editor SQL (se pueden abrir varios). Es como si el editor SQL no trabajara en la base de datos real, sino en una copia propia. En realidad, no es exactamente así como ocurre, pero esta imagen puede ayudarnos a comprender el concepto de transacción. Todos los cambios realizados en la copia durante una transacción solo serán visibles en la base de datos real una vez que hayan sido validados por un [Commit Transaction]. La transacción actual se da por terminada y comienza una nueva transacción.
Las modificaciones realizadas durante una transacción pueden anularse mediante una operación llamada [Rollback]. Hagamos el siguiente experimento. Iniciemos una nueva transacción (basta con ejecutar [Commit] en la transacción actual) con la orden SQL siguiente:

Ejecutemos esta orden, que elimina todas las filas de la tabla [ARTICLES], y luego ejecutemos [New Query], la nueva orden SQL, de la siguiente manera:

Obtenemos el siguiente resultado:

Se han eliminado todas las filas. Recordemos que esto se realizó en una copia de la tabla [ARTICLES]. Para verificarlo, hagamos doble clic en la tabla [ARTICLES] que se muestra a continuación:

y veamos la pestaña [Data]:

Incluso si usamos el botón [Refresh] o pasamos a la pestaña [Fields] para luego regresar a la pestaña [Data], el contenido anterior no cambia. Esto ya se ha explicado. Estamos en otra transacción que trabaja con su propia copia. Ahora regresemos al editor SQL (F12) y usemos el botón [RollBack] para deshacer las eliminaciones de líneas que se han realizado:

Se nos solicita confirmación:

Confirmemos. El editor SQL confirma que los cambios se han revertido:

Volvamos a ejecutar la consulta SQL anterior para verificar. Encontramos las filas que habían sido eliminadas:

La operación [Rollback] ha devuelto la copia en la que trabaja el editor SQL al estado en que se encontraba al inicio de la transacción.
5.4.6. Exportación de una base de datos Firebird a un script SQL
Cuando se trabaja con varios SGBD, como es el caso en el tutorial «Persistencia en Java 5 en la práctica», resulta útil poder exportar una base de datos desde un SGBD 1 a un script SQL para luego importar este último a un SGBD 2. Esto evita una serie de operaciones manuales. Sin embargo, esto no siempre es posible, ya que los archivos SGBD suelen tener extensiones SQL propias.
Veamos cómo exportar la base de datos [dbarticles] anterior a un script SQL:
![]() |
- a [1]: Herramientas / Extraer el MetaData, para extraer los metadatos
- en [2]: pestaña Metaobjetos
- en [3]: seleccionar la tabla [Articles] de la que se desea extraer la estructura (metadatos)
- en [4]: para trasladar a la derecha el objeto seleccionado a la izquierda
![]() |
- en [5]: la tabla [ARTICLES] formará parte de los metadatos extraídos
- en [6]: la pestaña [Table de données] sirve para seleccionar las tablas de las que se desea extraer el contenido (en el paso anterior, se exportaba la estructura de la tabla)
- en [7]: para mover a la derecha el objeto seleccionado a la izquierda
- en [8]: el resultado obtenido
![]() |
- en [9]: la pestaña [Options] permite configurar ciertos parámetros de la extracción
- en [10]: desmarcamos las opciones relacionadas con la generación de órdenes SQL que permiten conectarse a la base de datos. Son propias de Firebird y, por lo tanto, no nos interesan.
- en [11]: la pestaña [Sortie] permite especificar dónde se generará el script SQL
- en [12]: se especifica que el script debe generarse en un archivo
- en [13]: se especifica la ubicación de ese archivo
- en [14]: se inicia la generación del script SQL
El script generado, sin comentarios, es el siguiente:
Nota: las líneas 1 y 2 son específicas de Firebird. Deben eliminarse del script generado para obtener un SQL genérico.
5.4.7. Controlador JDBC de Firebird para
Un programa Java accede a los datos de una base de datos a través de un controlador JDBC específico para el SGBD utilizado:
![]() |
En una arquitectura de múltiples capas como la anterior, el controlador JDBC [1] es utilizado por la capa [dao] (Objeto de Acceso a Datos) para acceder a los datos de una base de datos.
El controlador JDBC de Firebird está disponible en la URL desde donde se descargó Firebird:
![]() |
![]() |
- en [1]: se elige descargar el controlador JDBC
- en [2]: se elige un controlador JDBC compatible con JDK 1.5
- en [3]: el archivo que contiene el controlador JDBC es [jaybird-full-2.1.1.jar]. Extraeremos este archivo. Se utilizará para todos los ejemplos JPA con Firebird.
Lo colocamos en una carpeta a la que llamaremos en adelante <jdbc>:

Para verificar este controlador JDBC, utilizaremos Eclipse y el complemento SQL Explorer (párrafo 5.2.6). Comenzamos por declarar el controlador JDBC de Firebird:
![]() |
- en [1]: ve a Ventana / Preferencias
- en [2]: selecciona la opción SQL Explorer / JDBC Drivers
- en [3]: selecciona el controlador JDBC para Firebird
- en [4]: pasar a la fase de configuración
- en [5]: pasar a la pestaña [Extra Class Path]
- con [6], seleccionar el archivo del controlador JDBC. Una vez hecho esto, este aparecerá en [7]. Aquí se seleccionará el controlador que se colocó previamente en la carpeta <jdbc>
- en [8]: el nombre de la clase Java del controlador JDBC. Se puede obtener mediante el botón [8b].
- ejecutamos [OK] para validar la configuración
![]() |
- en [9]: el controlador JDBC de Firebird ya está configurado. Ya podemos comenzar a utilizarlo.
![]() |
- a [1]: abre una nueva perspectiva
- en [2]: elegir la perspectiva [SQL Explorer]
![]() |
- en [3]: crear una nueva conexión
- en [4]: asignarle un nombre
- en [5]: seleccionar el controlador de Firebird JDBC de la lista desplegable
- en [6]: especificar la URL de la base de datos a la que queremos conectarnos, en este caso: [jdbc:firebirdsql:localhost/3050:C:\data\2006-2007\eclipse\dvp-jpa\annexes\jpa\jpa.fdb]. [jpa.fdb] es la base de datos creada anteriormente con IBExpert.
- en [7]: el nombre de usuario de la conexión, en este caso [sysdba], el administrador de Firebird
- en [8]: su contraseña [masterkey]
- validamos la configuración de la conexión mediante [OK]
![]() |
- en [1]: hacemos doble clic en el nombre de la conexión que queremos abrir
- en [2]: se inicia sesión (sysdba, masterkey)
- en [3]: la conexión está abierta
- en [4]: se muestra la estructura de la base de datos. Se ve la tabla [ARTICLES]. Se selecciona.
![]() |
- en [5]: en la ventana [Database Detail], se muestran los detalles del objeto seleccionado en [4], en este caso la tabla [ARTICLES]
- en [6]: la pestaña [Columns] muestra la estructura de la tabla
- en [7]: la pestaña [Preview] muestra la estructura de la tabla
Se pueden ejecutar consultas SQL en la ventana [SQL Editor]:
![]() |
- en [1]: seleccione una conexión abierta
- en [2]: ingrese la orden SQL que se ejecutará
- en [3]: ejecutarla
- en [4]: resumen de la orden ejecutada
- en [5]: su resultado
5.5. El SGBD e al MySQL5
5.5.1. Instalación
El SGBD MySQL5 está disponible en la URL [http://dev.mysql.com/downloads/]:
![]() |
- en [1]: elija la versión deseada
- en [2]: elige una versión de Windows
![]() |
- en [3]: elige la versión de Windows que desees
- en [4]: el archivo ZIP descargado contiene un ejecutable [Setup.exe] [4b] que debe descomprimir y ejecutar para instalar MySQL5
![]() |
- en [5]: elige una instalación típica
- en [6]: una vez finalizada la instalación, se puede configurar el servidor MySQL5
![]() |
- en [7]: elige una configuración estándar, la que te haga menos preguntas
- en [8]: el servidor MySQL5 será un servicio de Windows
![]() |
- en [9]: por defecto, el administrador del servidor es root sin contraseña. Se puede mantener esta configuración o asignarle una nueva contraseña a root. Si la instalación de MySQL5 se realiza después de desinstalar una versión anterior, esta operación podría fallar. Hay menos formas de revertirla.
- En [10]: se solicita la configuración del servidor
La instalación de MySQL5 crea una carpeta en [Démarrer / Programmes ]:

Se puede utilizar [MySQL Server Instance Config Wizard] para reconfigurar el servidor:
![]() |
![]() |
![]() |
- en [3]: cambiamos la contraseña de root (en este caso, root/root)
5.5.2. Iniciar / Detener MySQL5
El servidor MySQL5 se instaló como un servicio de Windows de inicio automático, c.a.d se inicia al arrancar Windows. Este modo de funcionamiento no es muy práctico. Vamos a cambiarlo:
[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:
![]() |
- en [1]: hacemos doble clic en [Services]
- en [2]: vemos que hay un servicio llamado [MySQL], que está en ejecución ([3]) y que su inicio es automático ([4]).
Para modificar este comportamiento, hacemos doble clic en el servicio [MySQL]:
![]() |
- en [1]: configuramos el servicio para que se inicie manualmente
- en [2]: lo detenemos
- en [3]: confirmamos la nueva configuración del servicio
Para iniciar y detener manualmente el servicio MySQL, se pueden crear dos accesos directos:
![]() |
- en [1]: el acceso directo para iniciar MySQL5
- [2]: el acceso directo para detenerlo
5.5.3. Clientes de administración de MySQL
En el sitio de MySQL, se pueden encontrar clientes de administración de SGBD:
![]() |
- en [1]: elige [MySQL GUI Tools], que incluye varios clientes gráficos que permiten tanto administrar el SGBD como utilizarlo
- en [2]: elija la versión de Windows que le convenga
![]() |
- en [3]: se descarga un archivo .msi para ejecutarlo
- en [4]: una vez completada la instalación, aparecerán nuevos accesos directos en la carpeta [Menu Démarrer / Programmes / mySQL].
Ejecutemos MySQL (a través de los accesos directos que has creado) y, a continuación, ejecutemos [MySQL Administrator] desde el menú anterior:
![]() |
- en [1]: ingresa la contraseña del usuario root (root en este caso)
- en [2]: ya estamos conectados y vemos que MySQL está activo
5.5.4. Creación de un usuario jpa y una base de datos jpa
El tutorial utiliza MySQL5 con una base de datos llamada jpa y un usuario con el mismo nombre. Ahora los crearemos. Primero, el usuario:
![]() |
- en [1]: seleccionamos [User Administration]
- en [2]: hacemos clic con el botón derecho en la sección [User accounts] para crear un nuevo usuario
- en [3]: el usuario se llama jpa y su contraseña es jpa
- en [4]: se confirma la creación
- en [5]: el usuario [jpa] aparece en la ventana [User Accounts]
Ahora, la base de datos:
![]() |
- en [1]: selección de la opción [Catalogs]
- en [2]: clic derecho en la ventana [Schemata] para crear un nuevo esquema (que designa una base de datos)
- en [3]: se le da nombre al nuevo esquema
- en [4]: aparece en la ventana [Schemata]
![]() |
- en [5]: se selecciona el esquema [jpa]
- en [6]: aparecen los objetos del esquema [jpa], en particular las tablas. Todavía no hay ninguna. Con un clic derecho se podrían crear. Dejamos que el lector lo haga.
Volvamos al usuario [jpa] para otorgarle todos los derechos sobre el esquema [jpa]:
![]() |
- en [1], luego en [2]: seleccionamos el usuario [jpa]
- en [3]: se selecciona la pestaña [Schema Privileges]
- en [4]: se selecciona el esquema [jpa]
- en [5]: le daremos al usuario [jpa] todos los privilegios sobre el esquema [jpa]
![]() |
- a [6]: validamos los cambios realizados
Para verificar que el usuario [jpa] pueda trabajar con el esquema [jpa], cerramos el administrador MySQL. Lo reiniciamos y, esta vez, nos conectamos con el nombre [jpa/jpa]:
![]() |
- en [1]: nos identificamos (jpa/jpa)
- en [2]: la conexión se realizó con éxito y en [Schemata] vemos los esquemas sobre los que tenemos derechos. Vemos el esquema [jpa].
Ahora vamos a crear la misma tabla [ARTICLES] que con el Firebird SGBD utilizando el script SQL [schema-articles.sql] generado en el párrafo 5.4.6.
![]() |
- a [1]: utilice la aplicación [MySQL Query Browser]
- en [2], [3], [4]: inicie sesión (jpa / jpa / jpa)
![]() |
- en [5]: abrir un script SQL para ejecutarlo
- en [6]: seleccionar el script [schema-articles.sql] creado en el párrafo 5.4.6.
![]() |
- en [7]: el script cargado
- en [8]: se ejecuta
- en [9]: se ha creado la tabla [ARTICLES]
5.5.5. Controlador JDBC de MySQL5
El controlador JDBC de MySQL se puede descargar en el mismo lugar que el SGBD:
![]() |
![]() |
- en [1]: elige el controlador JDBC que corresponda
- en [2]: elige la versión de Windows adecuada
- en [3]: en el archivo zip descargado, el archivo Java que contiene el controlador JDBC es [mysql-connector-java-5.0.5-bin.jar]. Lo extraeremos para utilizarlo en los ejemplos del tutorial JPA.
Lo colocamos igual que el anterior (párrafo 5.4.7) en la carpeta <jdbc>:
![]() |
Para probar este controlador JDBC, utilizaremos Eclipse y el complemento SQL Explorer. Se invita al lector a seguir los pasos explicados en el párrafo 5.4.7. A continuación, presentamos algunas capturas de pantalla relevantes:
![]() |
- en [1]: se ha cambiado el nombre del archivo del controlador JDBC de MySQL5
- en [2]: el controlador JDBC de MySQL5 está disponible
![]() |
- a [3]: definición de la conexión (usuario, contraseña)=(jpa, jpa)
- en [4]: la conexión está activa
- en [5]: la base conectada
5.6. El SGBD l PostgreSQL
5.6.1. Instalación
El SGBD PostgreSQL está disponible en la URL [http://www.postgresql.org/download/]:
![]() |
- en [1]: los sitios de descarga de PostgreSQL
- en [2]: elige una versión para Windows
- en [3]: elegir una versión con instalador
![]() |
- en [4]: el contenido del archivo zip descargado. Haz doble clic en el archivo [postgresql-8.2.msi]
- en [5]: la primera página del asistente de instalación
![]() |
- en [6]: elige una instalación típica aceptando los valores predeterminados
- en [6b]: creación de la cuenta de Windows que iniciará el servicio PostgreSQL; en este caso, la cuenta pgres con la contraseña pgres.
![]() |
- en [7]: dejar que PostgreSQL cree la cuenta [pgres] si aún no existe
- en [8]: definir la cuenta de administrador de SGBD, en este caso «postgres» con la contraseña «postgres»
![]() |
- en [9] y [10]: acepta los valores predeterminados hasta el final del asistente. Se instalará PostgreSQL.
La instalación de PostgreSQL crea una carpeta en [Démarrer / Programmes ]:

5.6.2. Iniciar / Detener PostgreSQL
El servidor PostgreSQL se ha instalado como un servicio de Windows de inicio automático; c.a.d se inicia al arrancar Windows. Este modo de funcionamiento no es muy práctico. Vamos a cambiarlo:
[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:
![]() |
- en [1]: hacemos doble clic en [Services]
- en [2]: vemos que existe un servicio llamado [PostgreSQL], que está en ejecución ([3]) y que su inicio es automático ([4]).
Para modificar este comportamiento, hacemos doble clic en el servicio [PostgreSQL]:
![]() |
- en [1]: configuramos el servicio para que se inicie manualmente
- en [2]: lo detenemos
- en [3]: confirmamos la nueva configuración del servicio
Para iniciar y detener manualmente el servicio PostgreSQL, se pueden utilizar los accesos directos de la carpeta [PostgreSQL]:
![]() |
- en [1]: el acceso directo para iniciar PostgreSQL
- en [2]: el acceso directo para detenerlo
5.6.3. Administrar PostgreSQL
En la captura de pantalla anterior, la aplicación [pgAdmin III] (3) permite administrar el SGBD y el PostgreSQL. Iniciemos el SGBD y, a continuación, el [pgAdmin III] a través del menú anterior:
![]() |
- en [1]: haz doble clic en el servidor PostgreSQL para conectarte a él
- a [2,3]: inicie sesión como administrador de SGBD, aquí (postgres / postgres)
![]() |
- en [4]: la única base de datos existente
- en [5]: el único usuario existente
5.6.4. Creación de un usuario jpa y una base de datos jpa
El tutorial utiliza PostgreSQL con una base de datos llamada jpa y un usuario con el mismo nombre. Ahora los crearemos. Primero el usuario:
![]() |
- en [1]: creamos un nuevo rol (~usuario)
- en [2]: creación del usuario jpa
- en [3]: su contraseña es jpa
- en [4]: se repite la contraseña
- en [5]: se autoriza al usuario a crear bases de datos
- en [6]: el usuario [jpa] aparece entre los roles de conexión
Ahora la base de datos:
![]() |
- en [1]: se crea una nueva conexión al servidor
- en [2]: se llamará jpa
- en [3]: máquina a la que queremos conectarnos
- en [4]: el usuario que se conecta
- en [5]: su contraseña. Se valida la configuración de la conexión mediante [OK]
- en [6]: se ha creado la nueva conexión. Pertenece al usuario jpa. Este ahora creará una nueva base de datos:
![]() |
- n [1]: se agrega una nueva base
- en [2]: su nombre es jpa
- en [3]: su propietario es el usuario jpa creado anteriormente. Se valida mediante [OK]
- en [4]: se ha creado la base de datos jpa. Con solo hacer clic en ella, nos conectamos a ella y podemos explorar su estructura:
![]() |
- en [5]: aparecen los objetos del esquema [jpa], en particular las tablas. Todavía no hay ninguna. Con un clic derecho se podrían crear. Dejamos que el lector lo haga.
Ahora vamos a crear la misma tabla [ARTICLES] que con las anteriores SGBD utilizando el script SQL [schema-articles.sql] generado en el párrafo 5.4.6.
![]() |
- en [1]: abrir el editor SQL
- en [2]: abrir un script SQL
- en [3]: seleccionar el script [schema-articles.sql] creado en el párrafo 5.4.6.
![]() |
- en [4]: el script cargado. Se ejecuta.
- en [5]: se ha creado la tabla [ARTICLES].
- en [6, 7]: su contenido
5.6.5. Controlador JDBC de PostgreSQL
El controlador JDBC de PostgreSQL está disponible en la carpeta [jdbc] de la carpeta de instalación de PostgreSQL:
![]() |
Colocamos el archivo Jdbc, al igual que los anteriores (párrafo 5.4.7), en la carpeta <jdbc>:
![]() |
Para probar este controlador JDBC, utilizaremos Eclipse y el complemento SQL Explorer. Se invita al lector a seguir los pasos explicados en el párrafo 5.4.7. A continuación, presentamos algunas capturas de pantalla relevantes:
![]() |
- en [1]: se ha cambiado el nombre del archivo del controlador JDBC de PostgreSQL
- en [2]: el controlador JDBC de PostgreSQL está disponible
![]() |
- a [3]: definición de la conexión (usuario, contraseña)=(jpa, jpa)
- en [4]: la conexión está activa
- en [5]: base de datos conectada
- en [6]: el contenido de la tabla [ARTICLES]
5.7. El SGBD a Oracle 10g Express
5.7.1. Instalación
El SGBD Oracle 10g Express está disponible en la URL [http://www.oracle.com/technology/software/products/database/xe/index.html]:
![]() |
- en [1]: el sitio de descargas de Oracle 10g Express
- en [2]: elige una versión para Windows. Una vez descargado el archivo, ejecútalo:
![]() |
- en [1]: haz doble clic en el archivo [OracleXE.exe]
- en [2]: la primera página del asistente de instalación
![]() |
- en [3]: acepta la licencia
- en [4]: acepta los valores predeterminados.
![]() |
- en [5,6]: el usuario SYSTEM tendrá la contraseña «system».
- en [7]: se inicia la instalación
La instalación de Oracle 10g Express crea una carpeta en [Démarrer / Programmes ]:

5.7.2. Iniciar/Detener Oracle 10g
Al igual que en los SGBD anteriores, Oracle 10g se instaló como un servicio de Windows de inicio automático. Modificamos esta configuración:
[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:
![]() |
- en [1]: hacemos doble clic en [Services]
- en [2]: vemos que hay un servicio llamado [OracleServiceXE], que está en ejecución ([3]) y que su inicio es automático ([4]).
- en [5]: otro servicio de Oracle, llamado «Listener», también está activo y se inicia automáticamente.
Para modificar este comportamiento, hacemos doble clic en el servicio [OracleServiceXE]:
![]() |
- en [1]: configuramos el servicio para que se inicie manualmente
- en [2]: lo detenemos
- en [3]: confirmamos la nueva configuración del servicio
Se procederá de la misma manera con el servicio [OracleXETNSListener] (véase [5] más arriba). Para iniciar y detener manualmente el servicio OracleServiceXE, se pueden utilizar los accesos directos de la carpeta [Oracle]:
![]() |
- en [1]: para iniciar el SGBD
- en [2]: para detenerlo
- en [3]: para administrarlo (lo cual lo inicia si aún no está en ejecución)
5.7.3. Creación de un usuario jpa y una base de datos jpa
En la captura de pantalla anterior, la aplicación [3] permite administrar el SGBD Oracle 10g Express. Iniciemos SGBD y [1], y luego la aplicación de administración [3] a través del menú anterior:
![]() |
- en [1]: inicie sesión como administrador de SGBD, aquí (system / system)
- en [2]: se crea un nuevo usuario
![]() |
- en [4]: nombre de usuario
- en [5, 6]: su contraseña, en este caso jpa
- en [7]: se ha creado el usuario jpa
En Oracle, un usuario se asocia automáticamente a una base de datos con el mismo nombre. Por lo tanto, la base de datos jpa existe al mismo tiempo que el usuario jpa.
5.7.4. Creación de la tabla [ARTICLES] de la base de datos jpa
OracleXE se instaló con un cliente SQL que funciona en modo de línea de comandos. Se puede trabajar más cómodamente con SQL Developer, también proporcionado por Oracle. Se puede encontrar en el sitio web:
[http://www.oracle.com/technology/products/database/sql_developer/index.html]
![]() |
- en [1]: el sitio de descarga
- en [2]: elige una versión para Windows sin JRE si ya lo tienes instalado (como es el caso aquí), ya que [SQL Developer] es una aplicación Java.
![]() |
- en [3]: descomprimir el archivo ZIP descargado
- en [4]: ejecutar el archivo ejecutable [sqldeveloper.exe]
![]() |
- en [5]: al iniciar [SQL Developer] por primera vez, indica la ruta del JRE instalado en la máquina
- en [5b]: crear una nueva conexión
![]() |
- en [6]: SQL Developer permite conectarse a diversos SGBD. Selecciona Oracle.
- en [7]: nombre que se le da a la conexión que se está creando
- en [8]: propietario de la conexión
- en [9]: su contraseña (jpa)
- en [10]: mantener los valores predeterminados
- en [11]: para probar la conexión (Oracle debe estar en ejecución)
- en [12]: para finalizar la configuración de la conexión
- en [13]: los objetos de la base de datos jpa
- en [14]: se pueden crear tablas. Al igual que en los casos anteriores, crearemos la tabla [ARTICLES] a partir del script creado en el párrafo 5.4.6.
![]() |
- en [15]: se abre un script SQL
- en [16]: se designa el script SQL creado en el párrafo 5.4.6.
- en [17]: el script que se ejecutará
![]() |
- en [18]: el resultado de la ejecución: se ha creado la tabla [ARTICLES]. Haz doble clic en ella para acceder a sus propiedades.
- en [19]: el contenido de la tabla.
5.7.5. Controlador JDBC de OracleXE
El controlador JDBC de OracleXE está disponible en la carpeta [jdbc/lib] de la carpeta de instalación de OracleXE [1]:
![]() |
Colocamos el archivo Jdbc [ojdbc14.jar], al igual que los anteriores (párrafo 5.4.7), en la carpeta <jdbc> [2]:
Para probar este controlador JDBC, utilizaremos Eclipse y el complemento SQL Explorer. Se invita al lector a seguir los pasos explicados en el párrafo 5.4.7. A continuación, presentamos algunas capturas de pantalla relevantes:
![]() |
- en [1]: se ha cambiado el nombre del archivo del controlador JDBC de OracleXE
- en [2]: el controlador JDBC de OracleXE está disponible
![]() |
- a [3]: definición de la conexión (usuario, contraseña)=(jpa, jpa)
- en [4]: la conexión está activa
- en [5]: base de datos conectada
- en [6]: el contenido de la tabla [ARTICLES]
5.8. El SGBD SQL Server Express 2005
5.8.1. Instalación
El SGBD SQL Server Express 2005 está disponible en la URL [http://msdn.microsoft.com/vstudio/express/sql/download/]:
![]() |
- en [1]: primero descarga e instala la plataforma .NET 2.0
- en [2]: luego, instala y descarga SQL Server Express 2005
- en [3]: luego, instalar y descargar SQL Server Management Studio Express, que permite administrar SQL Server
La instalación de SQL Server Express crea una carpeta en [Démarrer / Programmes ]:
![]() |
- en [1]: la aplicación de configuración de SQL Server. También permite iniciar o detener el servidor
- en [2]: la aplicación de administración del servidor
5.8.2. Iniciar/detener el servidor SQL
Al igual que en los casos anteriores de SGBD, el servidor SQL Express se instaló como un servicio de Windows de inicio automático. Modificamos esta configuración:
[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:
![]() |
- por [1]: hacemos doble clic en [Services]
- En [2]: se observa que existe un servicio llamado [SQL Server], que está en ejecución ([3]) y que su inicio es automático ([4]).
- En [5]: otro servicio vinculado al servidor SQL, llamado «SQL Server Browser», también está activo y se inicia automáticamente.
Para modificar este comportamiento, hacemos doble clic en el servicio [SQL Server]:
![]() |
- en [1]: configuramos el servicio para que se inicie manualmente
- en [2]: lo detenemos
- en [3]: confirmamos la nueva configuración del servicio
Se hará lo mismo con el servicio [SQL Server Browser] (véase [5] más arriba). Para iniciar y detener manualmente el servidor del servicio SQL, se puede utilizar la aplicación [1] de la carpeta [SQL server]:
![]() |
![]() |
- en [1]: asegúrese de que el protocolo TCP/IP esté activo (enabled) y luego acceda a las propiedades del protocolo.
- en [2]: en la pestaña [IP Addresses], opción [IPAll]:
- el campo [TCP Dynamic ports] se deja en blanco
- el puerto de escucha del servidor se establece en 1433 en [TCP Port]
![]() |
- en [3]: al hacer clic con el botón derecho del ratón en el servicio [SQL Server], se accede a las opciones de inicio y detención del servidor. Aquí, lo iniciamos.
- en [4]: se inicia el servidor SQL
5.8.3. Creación de un usuario jpa y una base de datos jpa
Iniciemos el SGBD como se indicó anteriormente, y luego la aplicación de administración [1] a través del menú que se muestra a continuación:
![]() |
![]() |
- en [1]: nos conectamos al servidor SQL como administrador de Windows
- en [2]: se configuran las propiedades de la conexión
![]() |
- en [3]: se habilita un modo mixto de conexión al servidor: ya sea con un inicio de sesión de Windows (un usuario de Windows) o con un inicio de sesión de SQL Server (cuenta definida dentro de SQL Server, independiente de cualquier cuenta de Windows).
- en [3b]: se crea un usuario de SQL Server
![]() |
- en [4]: opción [General]
- en [5]: el nombre de usuario
- en [6]: la contraseña (aquí jpa)
- en [7]: opción [Server Roles]
- en [8]: el usuario jpa tendrá permiso para crear bases de datos
Validamos esta configuración:
![]() |
- en [9]: se ha creado el usuario jpa
- en [10]: nos desconectamos
- en [11]: nos volvemos a conectar
![]() |
- en [12]: se inicia sesión como usuario jpa/jpa
- en [13]: una vez conectado, el usuario jpa crea una base de datos
![]() |
- en [14]: la base se llamará jpa
- en [15]: y pertenecerá al usuario jpa
- en [16]: se ha creado la base de datos jpa
5.8.4. Creación de la tabla [ARTICLES] de la base de datos jpa
Al igual que en los ejemplos anteriores, vamos a crear la tabla [ARTICLES] a partir del script creado en el párrafo 5.4.6.
![]() |
- en [1]: se abre un script SQL
- en [2]: se selecciona el script SQL creado en el párrafo 5.4.6, página 240.
- en [3]: hay que volver a identificarse (jpa/jpa)
- en [4]: el script que se ejecutará
- en [5]: seleccionar la base de datos en la que se ejecutará el script
- en [6]: ejecutarlo
![]() |
- en [7]: el resultado de la ejecución: se ha creado la tabla [ARTICLES].
- en [8]: se solicita ver su contenido
- en [9]: el contenido de la tabla.
5.8.5. Controlador JDBC de SQL Server Express
![]() |
- en [1]: una búsqueda en Google con el texto [Microsoft SQL Server 2005 JDBC Driver] nos lleva a la página de descarga del controlador JDBC. Seleccionamos la versión más reciente
- en [2]: el archivo descargado. Hacemos doble clic en él. Se descomprime y se crea una carpeta en la que encontramos el controlador Jdbc [3]
- en [4]: colocamos el archivo Jdbc [sqljdbc.jar], al igual que los anteriores (párrafo 5.4.7), en la carpeta <jdbc>
Para probar este controlador JDBC, utilizaremos Eclipse y el complemento SQL Explorer. Se invita al lector a seguir los pasos explicados en el párrafo 5.4.7. A continuación, presentamos algunas capturas de pantalla relevantes:
![]() |
- en [1]: se ha designado el archivo del controlador JDBC de SQL Server
- en [2]: el controlador JDBC del servidor SQL está disponible
![]() |
- en [3]: definición de la conexión (usuario, contraseña)=(jpa, jpa)
- en [4]: la conexión está activa
- en [5]: base de datos conectada
- en [6]: el contenido de la tabla [ARTICLES]
5.9. El SGBD e al HSQLDB
5.9.1. Instalación
El SGBD HSQLDB está disponible en la URL [http://sourceforge.net/projects/hsqldb]. Se trata de un SGBD escrito en Java, que ocupa muy poca memoria y administra bases de datos en memoria, no en disco. El resultado es una gran rapidez en la ejecución de las consultas. Esa es su principal ventaja. Las bases de datos creadas de esta manera en memoria pueden recuperarse cuando el servidor se apaga y se reinicia. De hecho, los comandos SQL emitidos para crear las bases se almacenan en un archivo de registro para ser reproducidos al siguiente inicio del servidor. De esta forma, se logra la persistencia de las bases de datos a lo largo del tiempo.
El método tiene sus limitaciones y HSQLDB no es un SGBD destinado a fines comerciales. Su principal ventaja radica en las pruebas o las aplicaciones de demostración. Por ejemplo, el hecho de que HSQLDB esté escrito en Java permite incluirlo en tareas de Ant (Another Neat Tool), una herramienta de Java para la automatización de tareas. De este modo, las pruebas diarias del código en desarrollo, automatizadas por Ant, podrán integrar pruebas de bases de datos administradas por SGBD y HSQLDB. El servidor se iniciará, se detendrá y se administrará mediante tareas de Java.
![]() |
- en [1]: el sitio de descargas
- en [2]: descargar la versión más reciente
![]() |
- en [3]: descomprimir el archivo zip descargado
- en [4]: la carpeta [hsqldb] resultante de la descompresión
- en [5]: la carpeta [demo], que contiene el script para iniciar el servidor [hsql] y [6], y en [7], el script para iniciar una herramienta básica de administración del servidor.
5.9.2. Iniciar/Detener HSQLDB
Para iniciar el servidor HSQLDB, haz doble clic en la aplicación [runManager.bat] [6] que se muestra arriba:
![]() |
- en [1]: se observa que para detener el servidor, basta con presionar Ctrl-C en la ventana.
5.9.3. La base de datos [test]
La base de datos administrada por defecto se encuentra en la carpeta [data]:
![]() |
- en [1]: al iniciarse, el SGBD HSQL ejecuta el script llamado [test.script]
- línea 1: se crea un esquema [public]
- línea 2: se crea un usuario [sa] con una contraseña vacía
- línea 3: el usuario [sa] recibe derechos de administración
Al final, se ha creado un usuario con derechos de administración. Este es el usuario que utilizaremos a partir de ahora.
5.9.4. Controlador JDBC de HSQL
El controlador JDBC de SGBD HSQL se encuentra en la carpeta [lib]:
![]() |
- en [1]: el archivo [hsqldb.jar] contiene el controlador JDBC de SGBD y HSQL
- en [2]: colocamos este archivo, al igual que los anteriores (párrafo 5.4.7), en la carpeta <jdbc>
Para verificar este controlador JDBC, utilizaremos Eclipse y el complemento SQL Explorer. Se invita al lector a seguir los pasos explicados en el párrafo 5.4.7. A continuación, presentamos algunas capturas de pantalla relevantes:
![]() |
- en [1]: [window / preferences / SQL Explorer / JDBC Drivers]
- en [2]: se configura el servidor [HSQLDB]
- en [3]: se indica el archivo [hsqldb.jar] que contiene el controlador JDBC
- en [4]: el nombre de la clase Java del controlador JDBC
- en [5]: el controlador JDBC ya está configurado
Una vez hecho esto, nos conectamos al servidor HSQL. Este debe iniciarse previamente.
![]() |
- en [6]: se crea una nueva conexión
- en [7]: se le asigna un nombre
- en [8]: queremos conectarnos al servidor HSQLDB
- en [9]: la URL de la base de datos a la que queremos conectarnos. Será la base [test] vista anteriormente.
- en [10]: nos conectamos como usuario [sa]. Ya vimos que era administrador de SGBD.
- En [11]: el usuario [sa] no tiene contraseña.
Validamos la configuración de la conexión.
![]() |
- en [12]: nos conectamos
- en [13]: se realiza la identificación
- en [14]: ya estamos conectados
![]() |
- en [15]: el esquema [PUBLIC] aún no tiene ninguna tabla
- en [16]: vamos a crear la tabla [ARTICLES] a partir del script [schema-articles.sql] creado en el párrafo 5.4.6.
- en [17]: se selecciona el script
![]() |
- en [18]: el script que se ejecutará
- en [19]: se ejecuta después de eliminar todos sus comentarios, ya que HSQLB no los acepta.
![]() |
- Una vez ejecutado el script, se actualiza en [20] la visualización de la base de datos
- en [21]: la tabla [ARTICLES] sí está ahí
- en [22]: su contenido
Apaguemos y luego reiniciemos el servidor HSQLDB. Una vez hecho esto, revisemos el archivo [test.script]:
Se observa que el archivo SGBD ha almacenado las diferentes órdenes SQL ejecutadas durante la sesión anterior y que las vuelve a ejecutar al iniciar la nueva sesión. Además, se observa (línea 2) que la tabla [ARTICLES] se crea en memoria (MEMORY). En cada sesión, las órdenes SQL emitidas se almacenan en [test.log] para ser copiadas al inicio de la siguiente sesión en [test.script] y reproducidas al inicio de la sesión.
5.10. El SGBD o de Apache Derby
5.10.1. Instalación
El SGBD Apache Derby está disponible en la URL [http://db.apache.org/derby/]. Se trata de un SGBD escrito también en Java y que, además, ocupa muy poco espacio en memoria. Presenta ventajas similares a las del HSQLDB. También puede integrarse en aplicaciones Java, c.a.d, formar parte integral de la aplicación y funcionar en la misma JVM.
![]() |
- en [1]: el sitio de descarga
- en [2,3]: descarga la versión más reciente
![]() |
- en [3]: descomprimir el archivo zip descargado
- en [4]: la carpeta [db-derby-*-bin] resultante de la descompresión
- en [5]: la carpeta [bin], que contiene el script para iniciar el servidor [db derby] y [6], y en [7], el script para detenerlo.
5.10.2. Iniciar / Detener Apache Derby (Db Derby)
Para iniciar el servidor Db Derby, haz doble clic en la aplicación [startNetworkServer] [6] mencionada anteriormente:
![]() |
- en [1]: el servidor se ha iniciado. Lo detendremos con la aplicación [stopNetworkServer] [7] que aparece arriba.
5.10.3. Controlador JDBC de Db Derby
El controlador JDBC de la base de datos Derby SGBD se encuentra en la carpeta [lib] de la carpeta de instalación:
![]() |
- en [1]: el archivo [derbyclient.jar] contiene el controlador JDBC de SGBD Db Derby
- en [2]: colocamos este archivo, al igual que los anteriores (párrafo 5.4.7), en la carpeta <jdbc>
Para probar este controlador JDBC, utilizaremos Eclipse y el complemento SQL Explorer. Se invita al lector a seguir los pasos explicados en el párrafo 5.4.7. A continuación, presentamos algunas capturas de pantalla relevantes:
![]() |
- en [1]: [window / preferences / SQL Explorer / JDBC Drivers]
- en [2]: el controlador JDBC de Apache Derby no aparece en la lista. Lo agregamos.
![]() |
- en [3]: se le asigna un nombre al nuevo controlador
- en [4]: se especifica el formato de las URL que maneja el controlador JDBC
- en [5]: se ha especificado el archivo .jar del controlador JDBC
- en [5b]: el nombre de la clase Java del controlador JDBC
- en [5c]: el controlador JDBC está configurado
Una vez hecho esto, nos conectamos al servidor Apache Derby. Antes de eso, lo iniciamos.
![]() |
- en [6]: se crea una nueva conexión
- en [7]: se le asigna un nombre
- en [8]: queremos conectarnos al servidor Apache Derby
- en [9]: la URL de la base de datos a la que queremos conectarnos. Detrás del prefijo estándar [jdbc:derby://localhost:1527], se debe indicar la ruta de una carpeta en el disco que contenga una base de datos Derby. La opción [create=true] permite crear esa carpeta si aún no existe.
- en [10,11]: nos conectamos como usuario [jpa/jpa]. No he investigado a fondo el tema, pero parece que se puede poner lo que se quiera como nombre de usuario y contraseña. Aquí se declara el propietario de la base de datos, si create=true.
Validamos la configuración de la conexión.
![]() |
- en [12]: nos conectamos
- en [13]: nos identificamos (jpa/jpa)
- en [14]: ya estamos conectados
![]() |
- en [15]: el esquema [jpa] aún no aparece.
- en [16]: vamos a crear la tabla [ARTICLES] a partir del script [schema-articles.sql] creado en el párrafo 5.4.6.
- En [17]: se selecciona el script
![]() |
- en [18]: el script que se ejecutará
- en [19]: se ejecuta después de eliminar todos sus comentarios, ya que Apache Derby, al igual que HSQLB, no los acepta.
![]() |
- una vez ejecutado el script, se actualiza en [20] la visualización de la base de datos
- en [21]: el esquema [jpa] y la tabla [ARTICLES] están ahí
- en [22]: el contenido de la tabla [ARTICLES]
![]() |
- en [23]: el contenido de la carpeta [derby\jpa] en la que se creó la base de datos.
5.11. El marco de trabajo Spring 2 de
El marco Spring 2 está disponible en la URL [http://www.springframework.org/download]:
![]() |
- en [1]: se descarga la última versión
- En [2]: se descarga la versión denominada «con dependencias», ya que contiene los archivos .jar de las herramientas de terceros que Spring integra y que se necesitan constantemente.
![]() |
- en [3]: descomprimimos el archivo descargado
- en [4]: la carpeta de instalación de Spring 2.1
![]() |
- en [5]: en la carpeta <dist> se encuentran los archivos de Spring. El archivo [spring.jar] reúne todas las clases del marco de trabajo Spring. Estas también están disponibles por módulos en la carpeta <modules> en [6]. Si sabemos qué módulos necesitamos, podemos encontrarlos aquí. De esta manera, evitamos incluir en la aplicación archivos que no necesita.
![]() |
- en [7]: la carpeta <lib> contiene los archivos de las herramientas de terceros utilizadas por Spring
- en [8]: algunos archivos del proyecto [jakarta-commons]
Cuando el tutorial utiliza archivos de Spring, hay que buscarlos en la carpeta <dist> o en la carpeta <lib> de la carpeta de instalación de Spring.
5.12. El contenedor EJB3 de JBoss
El contenedor EJB3 de JBoss está disponible en la URL [http://labs.jboss.com/jbossejb3/downloads/embeddableEJB3]:
![]() |
- en [1]: se descargan JBoss y EJB3. Se puede observar la fecha del producto (septiembre de 2006), mientras que la descarga se realiza en mayo de 2007. Cabe preguntarse si este producto sigue en desarrollo.
- en [2]: el archivo descargado
![]() |
- en [3]: el archivo zip descomprimido
- en [4]: los archivos [hibernate-all.jar, jboss-ejb3-all.jar, thirdparty-all.jar] forman el contenedor EJB3 de JBoss. Es necesario colocarlos en la ruta de clases de la aplicación que utiliza este contenedor.








































































































































































