En este tutorial vamos a explicar cómo configurar un proyecto OpenXava para que utilice una base de datos MySQL. Partimos de un proyecto OpenXava creado desde cero. Por tanto para realizar este tutorial deberás primero haberte creado el proyecto.
Comencemos con las modificaciones que hay que realizar. En la siguiente imagen mostramos como es la estructura de archivos y carpetas de un proyecto OpenXava básico:
Configurar MySql y OpenXava
Debemos modificar los siguientes ficheros dentro de nuestro proyecto para poder trabajar con MySQL:
- Configuración Tomcat ‘context.xml‘
- Fichero ant ‘build.xml‘
- Fichero de persistencia ‘META-INF/persistence.xml‘
- Fichero ‘hibernate.cfg.xml‘
Creación Base de datos
Lo primero que debemos hacer es crear una nueva base de datos. Para ello accederemos a la consola de MySQL y ejecutaremos lo siguiente:
1 create database developando;
En este ejemplo vamos a trabajar con los siguientes datos para la base de datos MySQL:
- Base de datos: developando
- Usuario: admin
- Contraseña: admin
Descargar el conector de MySQL
El siguiente paso será descargar el conector de la base de datos MySQL, en este tutorial utilizaremos ‘mysql-connector-java-5.0.8-bin.jar‘, y copiarlo en la carpeta ‘~/tomcat/lib/‘.
Configurar el fichero context.xml de Tomcat
Editar el fichero ‘~/tomcat/conf/context.xml‘ con el siguiente contenido:
Apache configuration |copy code |?
1 <Resource name="jdbc/developandoDS" auth="Container" type="javax.sql.DataSource"2 maxActive="100" maxIdle="4" maxWait="10000"3 username="admin" password="admin" driverClassName="com.mysql.jdbc.Driver"4 url="jdbc:mysql://localhost:3306/developando" />
Deberemos rellenar el nombre de usuario y la contraseña del usuario de MySQL que se conectará a la base de datos. En este ejemplo hemos creado este nuevo recurso con el nombre ‘jdbc/developandoDS‘, y este será el nombre que utilizaremos en el resto de ficheros de configuración para referenciarlo.
Configurar ficheros del proyecto
Fichero build.xml
Cambiar la tarea que realiza la actualización del esquema para que utilice el conector de mysql. Para ello modificar el fichero “~/build.xml“, cambiando la tarea ‘UpdateSchema‘ por la siguiente:
Apache configuration |copy code |?
1 <target name="updateSchema">
2 <ant antfile="../OpenXava/build.xml" target="updateSchemaJPA">3 <property name="persistence.unit" value="junit"/>4 <property name="schema.path"
5 value="../../tomcat/lib/mysql-connector-java-5.0.8-bin.jar"/>
6 </ant>7 </target>
Fichero persistence.xml
Dentro de la carpeta ‘persistence‘ del proyecto editar el fichero ‘META-INF/persistence.xml‘ añadiendo las siguientes líneas para modificar la persistencia por defecto:
Apache configuration |copy code |?
1 <persistence-unit name="default">
2 <provider>org.hibernate.ejb.HibernatePersistence</provider>3 <non-jta-data-source>java:comp/env/jdbc/developandoDS</non-jta-data-source>4 <class>org.openxava.session.GalleryImage</class>5 <properties>6 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>7 </properties>8 </persistence-unit>
Y estas otras para modificar la persistencia de ‘junit‘:
Apache configuration |copy code |?
01 <persistence-unit name="junit">
02 <provider>org.hibernate.ejb.HibernatePersistence</provider>03 <properties>04 <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>05 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>06 <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/developando"/>07 <property name="hibernate.connection.username" value="admin"/>08 <property name="hibernate.connection.password" value="admin"/>09 </properties>10 </persistence-unit>
Fichero hibernate.cfg.xml
En este fichero deberemos modificar ‘hibernate.dialect‘ para que utilice ‘MySQLDialect‘, quedando el fichero de la siguiente manera:
Apache configuration |copy code |?
01 <hibernate-configuration>02 03 <session-factory>04 05 <!-- Tomcat + MySQL -->06 <property name="hibernate.connection.datasource">java:comp/env/jdbc/developandoDS</property>
07 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
08 <property name="hibernate.jdbc.use_get_generated_keys">false</property>
09 <property name="hibernate.show_sql">false</property>
10 11 <mapping resource="GalleryImage.hbm.xml"/>
12 13 </session-factory>14 15 </hibernate-configuration>
Una vez realizados todos estos cambios en los ficheros de nuestro proyecto, ya podremos lanzar la tarea que se encarga de actualizar el esquema de la base de datos MySQL que hemos configurado.
Para ellos ejecutar la tarea ‘UpdateSchema‘ del fichero ‘build.xml‘, y si todo está bien configurado deberemos ver una salida por consola como la siguiente:
Las líneas que están recuadradas en rojo muestran las tablas que han sido creadas al actualizar el esquema de la base de datos MySQL.
Espero que el tutorial sea de ayuda. Si tenéis alguna queja, duda o sugerencia no dudéis en utilizar los comentarios.
Deja tu comentario