4/28/2011



Explicamos paso a paso cómo instalar el IDE de desarrollo gratuito Eclipse en un equipo con Microsoft Windows 7 (válido para otros sistemas operativos Microsoft), mostramos cómo descargar y OpenXava para integrarlo con Eclipse. Mostramos cómo iniciar y modificar una aplicación de ejemplo en OpenXava. Como motor de base de datos usaremos MySQL Server, explicamos cómo conectar nuestras aplicaciones OpenXava con MySQL Server.



 

OpenXava

OpenXava es un marco de trabajo de código abierto para desarrollar aplicaciones de gestión de una forma efectiva. Permite el desarrollo rápido y fácil de mantenimientos y listados pero, a su vez, es lo suficientemente flexible para desarrollar complejas aplicaciones de gestión de la vida real como contabilidad, facturación, gestión de personal, nóminas, gestión de almacenes, etc.
OpenXava permite definir aplicaciones simplemente con POJOs, JPA y anotaciones de Java 5.
Actualmente OpenXava genera aplicaciones web Java (J2EE/JavaEE), que pueden ser desplegadas en cualquier portal Java (JSR-168) como una aplicación de portlets.
La esencia de OpenXava es que el desarrollador define en vez de programar, y el marco provee automáticamente la interfaz de usuario, el acceso a los datos, el comportamiento por defecto, etc. De esta manera, todo lo común se resuelve fácilmente, pero siempre el desarrollador tiene la posibilidad de programar manualmente cualquier parte de la aplicación, de esta forma es lo bastante flexible para resolver los casos particulares. OpenXava está basado en el concepto de componente de negocio.
Algunas característistica de OpenXava son:
  • Alta productividad para aplicaciones de gestión.
  • Curva de aprendizaje corta y sencillez de uso.
  • Suficientemente flexible como para crear aplicaciones sofisticadas.
  • Es posible insertar nuestra propia funcionalidad en cualquier punto.
  • Basado en el concepto de componente de negocio.
  • Genera una aplicación J2EE completa, incluyendo la interfaz de usuario (AJAX).
  • Soporta cualquier servidor de aplicaciones (Tomcat, JBoss, WebSphere).
  • Soporta JSR-168: todos los módulos OpenXava también son portlets estándar.
  • Soporte completo de EJB3 JPA.
  • Está probado con los portales: JetSpeed 2, WebSphere Portal, Liferay y Stringbeans.
  • Fácil integración de informes hechos con JasperReports.
  • Licencia LGPL.
  • Todas las etiquetas y mensajes están en inglés, español, alemán, polaco, indonesio, francés, italiano, chino y catalán.

Eclipse

Eclipse es un entorno de desarrollo integrado de código abierto multiplataforma para desarrollar Aplicaciones de Cliente Enriquecido, opuesto a las aplicaciones Cliente-liviano basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus.
Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas. Un ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas de Model Driven Engineering.
Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios.
La base para Eclipse es la Plataforma de cliente enriquecido (del Inglés Rich Client Platform RCP). Los siguientes componentes constituyen la plataforma de cliente enriquecido:
  • Plataforma principal: inicio de Eclipse, ejecución de plugins.
  • OSGi: una plataforma para bundling estándar.
  • Standard Widget Toolkit (SWT): Un widget toolkit portable.
  • JFace: manejo de archivos, manejo de texto, editores de texto.
  • Workbench de Eclipse: vistas, editores, perspectivas, asistentes.
Los widgets de Eclipse están implementados por una herramienta de widget para Java llamada SWT, a diferencia de la mayoría de las aplicaciones Java, que usan las opciones estándar Abstract Window Toolkit (AWT) o Swing. La interfaz de usuario de Eclipse también tiene una capa GUI intermedia llamada JFace, la cual simplifica la construcción de aplicaciones basadas en SWT.
El entorno de desarrollo integrado (IDE) de Eclipse emplea módulos (plug-in) para proporcionar toda su funcionalidad al frente de la plataforma de cliente enriquecido, a diferencia de otros entornos monolíticos donde las funcionalidades están todas incluidas, las necesite el usuario o no. Este mecanismo de módulos es una plataforma ligera para componentes de software. Adicionalmente a permitirle a Eclipse extenderse usando otros lenguajes de programación como son C/C++ y Python, permite a Eclipse trabajar con lenguajes para procesado de texto como LaTeX, aplicaciones en red como Telnet y Sistema de gestión de base de datos. La arquitectura plugin permite escribir cualquier extensión deseada en el ambiente, como sería Gestión de la configuración. Se provee soporte para Java y CVS en el SDK de Eclipse. Y no tiene por qué ser usado únicamente para soportar otros lenguajes de programación.

HSQLDB

HSQLDB ó HyperSQL (Hyperthreaded Structured Query Language Database) es un sistema gestor de bases de datos libre escrito completamente en Java.
La última versión de HyperSQL (2.1) introduce mejoras en todos los ámbitos. Es compatible con la más amplia gama de características estándar SQL como cualquier otro motor de base de datos..
HSQLDB está basado en HypersonicSQL, un proyecto de Thomas Mueller abandonado en la actualidad.
Las características más importantes de HSQLDB:
  • Escrito por completo en Java.
  • Completo sistema gestor de bases de datos relacional.
  • Tiempo de arranque mínimo y gran velocidad en las operaciones: SELECT, INSERT, DELETE y UPDATE.
  • Sintaxis SQL estándar.
  • Integridad referencial (claves foráneas).
  • Procedimientos almacenados en Java.
  • Triggers.
  • Tablas en disco de hasta 8GB.
  • Tres modelos de control de transacciones, incluyendo los modelos basados ​​en bloqueos y MVCC.
  • Totalmente multiproceso.
  • Diseño compacto del código.
  • Soporta JDK 1.1.x, 1.2.x, 1.3.x, 1.4.x, 1.5.x, 1.6.x en HyperSQL 1.8.1 y 1.5.x y 1.6.x en HyperSQL 2.0.
  • Soporte para JDBC.
  • Soporta todos los tipos de datos estándar SQL, incluyendo BINARY, BIT, BOOLEAN, date-time, INTERVAL, BLOB, CLOB.
  • Soporte para transacciones COMMIT, ROLLBACK y SAVEPOINT.
  • Soporte ODBC.
  • Se puede usar en applets, en medios de sólo lectura (CD/DVD), en aplicaciones embebidas.
  • Múltiples bases de datos por JVM.
  • Copia de seguridad online y offline (en frío y en caliente).

Instalar Eclipse Helios en Microsoft Windows

En primer lugar descargaremos Eclipse Helios desde la web oficial, descargaremos Eclipse IDE for Java EE Developers, descargaremos la versión 32 ó 64 bits según sea la arquitectura de nuestro procesador y el sistema operativo instalado:
http://www.eclipse.org/downloads
Instalar Eclipse Helios en Microsoft Windows
Seleccionaremos el origen de la descarga del fichero eclipse-jee-helios-SR2-win32.zip (en nuestro caso desde RedIRIS):
Instalar Eclipse Helios en Microsoft Windows
Marcaremos "Guardar archivo" y pulsaremos "Aceptar":
Instalar Eclipse Helios en Microsoft Windows
Se iniciará la descarga del fichero eclipse-jee-helios-SR2-win32.zip de 206MB:
Instalar Eclipse Helios en Microsoft Windows
Descomprimiremos el fichero descargado:
Instalar Eclipse Helios en Microsoft Windows
Cortaremos la carpeta descomprimida "eclipse":
Instalar Eclipse Helios en Microsoft Windows
Y la pegaremos en la carpeta donde queramos dejarlo definitivamente, en nuestro caso hemos creado una carpeta llamada "desarrollo" y dentro de esta iremos colocando todos las herramientas y proyectos para realizar aplicaciones. Pegaremos la carpeta "eclipse":
Instalar Eclipse Helios en Microsoft Windows
Eclipse no necesita instalación, con descomprimir el fichero es suficiente. Para ejecutarlo abriremos el fichero "eclipse.exe" haciendo doble cli sobre él o pulsando con el botón derecho y seleccionando "Ejecutar como administrador" (aunque no es necesario):
Instalar Eclipse Helios en Microsoft Windows
Si lo hemos ejecutado como administrador, el Control de cuentas de usuario de Microsoft Windows 7 nos mostrará una advertencia, pulsaremos "Sí":
Instalar Eclipse Helios en Microsoft Windows
Se iniciará Eclipse Helios, nos preguntará la ubicación del Workspace seleccionaremos nuestra carpeta de "desarrollo" (más adelante cambiaremos el Workspace o espacio de trabajo para OpenXava):
Instalar Eclipse Helios en Microsoft Windows
Y ya tendremos disponible el IDE Eclipse Helios para desarrollar aplicaciones Java:
Instalar Eclipse Helios en Microsoft Windows

Instalar Java SE Development Kit, preparar el entorno de desarrollo

Descargaremos el Java SE Development Kip desde la web oficial de Oracle:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Leeremos los términos de licencia, si estamos de acuerdo marcaremos "Accept License Agreement ". Seleccionaremos la versión que se adapte a nuestro sistema operativo y a la arquitectura de nuestro equipo (en nuestr ocaso "Windows x86" jdk-6u25-windows-i586.exe de 77MB:
Instalar Java SE Development Kit
Pulsaremos en "Guardar archivo":
Instalar Java SE Development Kit
Tras la descarga ejecutaremos el fichero para iniciar el asistente de instalación de Java SE Development Kit, pulsaremos "Next":
Instalar Java SE Development Kit
Anotaremos la carpeta donde se instalará el JDK (por defecto C:/Archivos de programa/Java/jdk1.6.0_25) y pulsaremos "Next":
Instalar Java SE Development Kit
Tras la instalación de JDK, el asistente solicitará instalar el JRE, pulsaremos "Next":
Instalar Java SE Development Kit
Tras la instalación, comprobaremos que los ficheros del JDK están en la carpeta que hemos anotado:
Instalar Java SE Development Kit
A continuación añadiremos la variable de entorno JAVA_HOME, necesaria para la ejecución de Tomcat. Para ello accederemos al botón "Iniciar" de Microsoft Windows 7, pulsaremos con el botón derecho en "Equipo" y seleccionaremos "Propiedades":
Instalar Java SE Development Kit
Pulsaremos en "Configuración avanzada del sistema":
Instalar Java SE Development Kit
En la pestaña "Opciones avanzadas" pulsaremos en "Variables de entorno":
Instalar Java SE Development Kit
En "Variables del sistema" pulsaremos en "Nueva":
Instalar Java SE Development Kit
Introduciremos los siguientes datos:
  • Nombre de la variable: JAVA_HOME.
  • Valor de la variable: la carpeta de instalación de JDK, en nuestro caso C:/Program Files/Java/jdk1.6.0_25.
Pulsaremos "Aceptar" y quedará guardada la variable de entorno JAVA_HOME que más tarde necesitará Tomcat para su ejecución:
Instalar Java SE Development Kit

 

Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo

Una vez instalado Eclipse, instalado JDK y añadida la variable de entorno JAVA_HOME, descargaremos e instalaremos OpenXava (que ya lleva incluido Tomcat). Para ello accederemos a la web oficial de OpenXava a la sección de descargas:
http://www.openxava.org/web/guest/downloads
Pulsaremos en la descarga disponible (en el momento de realizar este manual la versión 4.1.2):
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
Guardaremos el archivo comprimido con OpenXava (openxava-4.1.2.zip):
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
Descomprimiremos el fichero openxava-4.1.2.zip descargado:
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
Podremos decomprimirlo directamente en nuestra carpeta "desarrollo":
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
Una vez descomprimido podemos cambiar el nombre a la carpeta y dejar sólo "openxava". Accederemos a la carpeta de OpenXava y ejecutaremos Tomcat haciendo doble clic sobre el fichero "start-tomcat.bat":
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
Microsoft Windows 7 nos mostrará una advertencia de seguridad al abrir un archivo ejecutable descargado de Internet, pulsaremos "Ejecutar":
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
Si todo es correcto y el puerto 8080 (puerto por defecto de Tomcat) no está siendo usado por otra aplicación, se iniciará el servicio Tomcat y tendremos disponible este servidor web y de aplicaciones. Se abrirá una ventana de MS-DOS, al final de la carga de Tomcat indicará "INFO: Server startup in xxx ms":
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
Si no se muestra la ventana anterior es porque Tomcat no ha podido iniciarse, en ese caso podremos ver el log del error que se ha producido en:
C:/desarrollo/openxava/tomcat/logs/catalinaxxx.log
Si todo es correcto y se ha inicado Tomcat, abriendo un navegador web y accediendo a la URL:
http://localhost:8080
Debe aparecernos la página inicial de Apache Tomcat:
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
Ya tendremos disponible este servidor web y servidor de aplicaciones web para su uso.
Ahora abriremos Eclipse Helios, nos mostrará la ventana de selección del espacio de trabajo "Workspace". En "Workspace" seleccionaremos la carpeta "workspace" de OpenXava, en nuestro caso:
C:/desarrollo/openxava/workspace
Si no queremos que nos vuelva a preguntar por el Workspace marcaremos "Use this as the default and do not ask again". Pulsaremos "OK":
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
Con estos sencillos pasos ya tendremos preparado el entorno de desarrollo Eclipse para usar el framework OpenXava para desarrollar aplicaciones web profesionales de forma sencilla y casi sin usar código (lo genera OpenXava de forma automática).
Nota: si no nos aparece la ventana de selección del Workspace en Eclipse, podremos abrirla desde el menú "File" - "Switch Workspace" - "Other":
Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrollo
 

Ejecutar aplicación de prueba OpenXava MiEscuela

OpenXava incluye varios ejemplos en su descarga, uno de ellos es MiEscuela. Para ejecutarlo y probarlo seguiremos los siguientes pasos.
Tras instalar Eclipse, OpenXava y configurar e iniciar Tomcat abriremos Eclipse usando como Workspace la carpeta "workspace" de OpenXava (como ya hemos explicado en este artículo). En la parte izquierda, en el Package Explorer de Eclipse, nos aparecerán los proyectos de ejemplo de OpenXava, seleccionaremos "MiEscuela" y pulsaremos en el botón "Run":
Ejecutar aplicación de prueba OpenXava MiEscuela
Tras la compilación del proyecto (lo indicará en la pestaña "Console") OpenXava, pulsaremos en el menú "Project" - "Build All" (Control + B):
Ejecutar aplicación de prueba OpenXava MiEscuela
Tras la construcción del proyecto (lo indicará en la pestaña "Console" con "BUILD SUCCESSFUL") pulsaremos en el botón "Run" y seleccionaremos "MiEscuela.desplegarWar":
Ejecutar aplicación de prueba OpenXava MiEscuela
Ahora, para probar la aplicación de prueba MiProfesor compilada anteriormente, abriremos un navegador de Internet y accederemos a la URL:
http://localhost:8080/MiEscuela/modules/Profesor
Si todo es correcto nos mostrará la aplicación MiEscuela de ejemplo de desarrollo en OpenXava:
Ejecutar aplicación de prueba OpenXava MiEscuela
Podremos realizar pruebas de filtros, búsqueda, ordenación, inserción, eliminación, etc.:
Ejecutar aplicación de prueba OpenXava MiEscuela
Dicha aplicación estará disponible para cualquier equipo de nuestra red (siempre que hayamos abierto el puerto 8080 en el cortafuegos del equipo donde hemos instalado en entorno de desarrollo) e incluso disponible desde Internet si hemos mapeado (redireccionado) convenientemente el puerto 8080 del router o cortafuegos de nuestra LAN a la IP del equipo con el servidor web Tomcat. Por supuesto, antes de permitir accesos externos a la aplicación conviene tener en cuenta el número de usuarios que se conectarán concurrentemente así como la cantidad aproximada y tipo de transacciones que realizarán. Con esta valoración deberemos estimar las características hardware de nuestro servidor con Tomcat, la aplicación OpenXava y la base de datos. Por supuesto no es recomendable usar el mismo equipo que usamos para desarrollo como servidor para la aplicación y la base de datos, es conveniente (mediante virtualización u otras técnicas) tener un equipo de pruebas para el desarrollo y separarlo del equipo en producción.
 

Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse

OpenXava, por defecto, en sus ejemplos, usa como base de datos HSQLDB que ya viene embebida en Tomcat para su uso directo, sin tener que configurar nada. Vamos a explicar cómo cambiar la base de datos HSQLDB por el motor de bases de datos MySQL Server. Obviamente, como requisito indispensable necesitaremos disponer de un equipo (sea Linux ó Windows) con el motor de base de datos MySQL Server instalado, en los siguientes enlaces explicamos cómo instalar MySQL Server en varios sistemas operativos (Linux y Windows):
Accederemos a MySQL Server con MySQL Administrator o cualquier otro software que permita crear un nuevo esquema y ejecutar consultas SQL. Crearemos el esquema para nuestra aplicación OpenXava, en el caso de MySQL Administrator, pulsando con el botón derecho sobre los esquemas y seleccionando "Crear New Schema":
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
Nos conectaremos al esquema creado con MySQL Query Browser o cualquier otro software que permita ejecutar CREATE en la base de datos y ejecutaremos la siguiente consulta SQL para crear la tabla "Profesor" con los campos "codigo" y "nombre":
CREATE TABLE Profesor (
codigo varchar(5) NOT NULL,
nombre varchar(40),
PRIMARY KEY (codigo)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
Una vez que hayamos creado el esquema y la tabla en la base de datos MySQL Server es conveniente y recomendable crear un usuario que sólo tenga acceso a este esquema, por seguridad, para no usar el superusuario root en nuestra aplicación OpenXava pues podría acceder a cualquier esquema y realizar cualquier acción. Teniendo en cuenta que será una aplicación Web hay que tener precaución y usar un usuario de MySQL sólo con permisos para las tablas de la aplicación. Así pues, desde MySQL Administrator, en la opción "User Administration" pulsaremos en "Add new user":
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
En la pestaña "User Information" introduciremos el nombre del usuario que usaremos para OpenXava, por ejemplo "ajpdsoft" (en MySQL User) y la contraseña de este usuario:
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
En la pestaña "Schema Privileges" estableceremos los permisos para este usuario, es recomendable no asignar los permisos de CREATE, DROP, GRANT, ALTER, TRIGGER, CREATE_ROUTINE y ALTER_ROUTINE pues son peligrosos para uso por una aplicación Web. Así pues, seleccionaremos en "Schemata" el esquema creado anteriormente "bdopenxava", en "Available Privileges" iremos pasando a "Assigned Privileges" los permisos que queramos asigrnale: SELECT, INSERT, UPDATE, DELETE, LOCK_TABLES, SHOW_VIEW y EXECUTE. Una vez que hayamos asignado los privelios pulsaremos en "Apply changes":
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
Tras disponer del servidor con MySQL Server, el esquema, las tablas y el usuario y contraseña, configuraremos ahora Tomcat para que admita acceso a MySQL Server para ello descargaremos el driver JDBC de la web oficial de MySQL:
http://dev.mysql.com/downloads/connector/j
Descargaremos el fichero mysql-connector-java-5.1.16.zip para Windows, lo descomprimiremos y copiaremos el fichero mysql-connector-java-5.1.15-bin.jar descomprimido:
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
Lo pegaremos en la carpeta .../tomcat/lib:
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
Si tenemos iniciado Tomcat deberemos detenerlo y volverlo a iniciar para que "coja" el nuevo driver añadido.
Tras instalar el driver JDBC para MySQL, ahora abriremos el fichero de configuración de conexiones "context.xml" con cualquier editor de texto plano (notepad, wordpad, notepad++, etc.). Dicho fichero se encuentra en:
C:/desarrollo/openxava/tomcat/conf/context.xml
(donde C:/desarrollo será la carpeta donde hayamos instalado OpenXava)
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
Cambiaremos el siguiente texto correspondiente al recurso de conexión MiEscuelaDS:
 
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
Por este otro para acceso a la base de datos MySQL creada anteriormente:

Guardaremos los cambios:
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
Es recomendable, si tenemos Tomcat abierto, cerrarlo y volverlo a abrir, para que todos los cambios se apliquen correctamente. A partir de ahora, cuando los usuarios accedan a nuestra aplicación MiEscuela con OpenXava los datos los consultarán y modificarán en nuestro servidor MySQL. Todo ello sin cambiar ni una sola línea de código en nuestro proyecto:
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
Los datos, como decimos, quedarán guardados en MySQL:
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y Eclipse
 

Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava

Vamos a realizar algunas modificaciones en el proyecto de ejemplo que viene con OpenXava MiEscuela. Vamos a añadir una nueva entidad llamada "Alumno" y vamos a ver el resultado.
Abriremos nuestro proyecto OpenXava desde Eclipse como hemos explicado anteriormente, accederemos a Package Explorer, a "MiEscuela" - "src" - "org.openxava.escuela.modelo", seleccionaremos "Profesor.java" y pulsaremos en "Copy":
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Seleccionaremos "org.openxava.escuela.modelo", pulsaremos el botón derecho y seleccionaremos "Paste":
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Introduciremos el nombre para la nueva clase, en nuestro caso "Alumno":
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Haremos doble clic sobre el nuevo fichero creado "Alumno.java", añadiremos una nueva columna de ejemplo "dni", para ello añadiremos el siguiente código:
 @Column(length=10)
 private String dni;
 
 public String getDni() {
  return dni;
 }

 public void setDni(String dni) {
  this.dni = dni;
 }

Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Con estos sencillos pasos ya tendremos preparado el proyecto con una nueva opción "Alumnos", sin añadir ni una sola línea de código, sólo con la definición de las entidades y columnas, OpenXava se encargará de forma totalmente automática de generar la interfaz gráfica para la nueva entidad Alumno. Lo único que nos falta, obviamente, es crear la tabla "Alumno" en MySQL Server con los campos: codigo, nombre y dni, para ello podremos ejecutar la siguiente sentencia SQL desde cualquier administrador de MySQL:
CREATE TABLE Alumno (
codigo varchar(5) NOT NULL,
nombre varchar(40),
dni varchar(10),
PRIMARY KEY (codigo)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Y ya podremos recompilar la aplicación pulsando en Run:
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Pulsaremos en "Project" - "Build All":
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava

Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Para ver el resultado, accederemos a la URL:
http://localhost:8080/MiEscuela/modules/Alumno
Y ya tendremos disponible la ventana para los Alumnos, sin usar ni una sola línea de código, gracias a OpenXava. Podremos añadir nuevos alumnos pulsando en "Nuevo":

Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava

Nos mostrará una ventana de edición para añadir el alumno con los campos indicados en la clase java Alumno:
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
En la lista tendremos disponibles todas las opciones: nuevo registro, eliminar registros, generar listado en PDF o CSV (Excel), cambia vista a lista, detalle o ambas, filtros personalizados, ordenar por cualquier columna, etc.:
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Otra prueba, para comprobar la sencillez de manejo y flexibilidad de OpenXava, vamos a enlazar los alumnos con los profesores, de tal forma que un alumno tenga un profesor asociado y un profesor tenga varios alumnos asociados. Para ello editaremos el fichero "Alumno.java" y añadiremos:
  @ManyToOne
 private Profesor profesor;
  
 public Profesor getProfesor() {
     return profesor;
 }
  
 public void setProfesor(Profesor profesor) {
     this.profesor = profesor;
 } 
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Ahora, como siempre que añadimos una nueva entidad o campo en nuestro proyecto OpenXava deberemos añadirlo en la base de datos. En este caso añadiremos el campo "profesor_codigo" (pues es el nombre que le da OpenXava al campo por defecto) en la tabla "Alumno" con el tipo de datos VARCHAR(5) que debe ser el mismo tipo de datos que la clave primeria de la tabla "Profesor" que es con la que enlazaremos mediante la clave foránea "profesor_codigo". Para añadir este campo a la tabla "Alumno" ejecutaremos la siguiente consulta SQL en cualquier software que permita ejecutar consultas SQL contra MySQL:
ALTER TABLE bdopenxava.Alumno
ADD COLUMN profesor_codigo VARCHAR(5);
O bien hacerlo gráficamente con MySQL Administrador, editando la tabla:
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Ahora ya podremos probar esta nueva característica para nuestra aplicación web, volveremos a compilarla y volveremos a abrirla con el navegador web. Como siempre con OpenXava, nos habrá generado la modificación, en este caso añadiendo una nueva opción de selección de Profesor al dar de alta un nuevo Alumno:
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Además, OpenXava incluye opción de selección del Profesor mediante lista, o incluso añadir un nuevo profesor desde la ventana de Alumno:
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
En este caso hemos realizado un enlace "Muchos a uno" (ManyToOne). De forma que un Alumno sólo podrá estar asociado con un Profesor. Ahora vamos a definir una conexión "Uno a muchos" (OneToMany) en el caso del Profesor, que podrá tener varios Alumnos asociados. Para ello editamos el fichero Profesor.java de nuestro proyecto OpenXava y añadimos las siguientes líneas:
 @OneToMany(mappedBy="profesor")
 private Collection alumnos;
  
 public Collection getAlumnos() {
     return alumnos;
 }
  
 public void setAlumnos(Collection alumnos) {
     this.alumnos = alumnos;
 }
Nota: para que el código anterior funcione hay que añadir en la parte inicial de la clase "Profesor" el import:
import java.util.*;
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
En este caso no es necesario añadir campos a la tabla MySQL pues el enlace ya ha quedado grabado en la tabla Alumno mediante la clave foránea "profesor_codigo", por lo tanto podremos compilar la aplicación directamente para ver la nueva característica, en este caso en Profesor:
http://localhost:8080/MiEscuela/modules/Profesor
OpenXava nos mostrará la lista de Profesores, seleccionando uno de ellos para ver el detalle:
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava
Nos habrá creado de forma automática la nueva característica de mostrar los alumnos asociados con el profesor. Desde aquí podremos quitar o añadir alunos a la lista de asociados con el profesor actual:
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXava

 

Conclusiones sobre OpenXava

OpenXava es una herramienta fabulosa, una utilidad añadida a Eclipse para desarrollar aplicaciones web profesionales y con un buen diseño sin apenas conocimientos de programación. Que, además, separa la lógica de negocio de la interfaz gráfica y permite cambiar de motor de base de datos sin realizar modificaciones en el código. Por ello es una muy buena opción para desarrollar aplicaciones Java (JSP) para servidores web de forma profesional y con multitud de opciones que lo hacen sumamente flexible.
Sin duda lo recomendamos para desarrollo de aplicaciones web profesionales de facturación, contabilidad, recursos humanos, helpdesk, almacén, control de stock, gestión, etc.
Una de las maravillas de OpenXava es que necesitaremos una curva de aprendizaje muy pequeña, en poco tiempo adquiriremos los conocimientos necesarios para desarrollar aplicaciones, con lo cual podremos dedicar el tiempo no perdido en formación a desarrollar más aplicaciones y conseguir más ingresos.

Artículos relacionados


Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft.