Está en la página 1de 16

Ingeniera Reversa con

Spring Roo
1.1.2

Hacer ingeniera reversa de un


esquema de base de datos
existente y generar cdigo Java
a partir de l.
Autor: Yonni Lopez Vitor
Lima, 14 de Abril de 2011

Desarrollo Web

Yonni Lopez Vitor

Configurando Spring Roo 1.1.2


Bueno le puse configurando para que suene aaasuuu, pero en realidad el procesos es fcil.
Para utilizar Spring Roo primero debemos de descargarlo, por defecto al instalar STS llega la
versin del Spring Roo 1.1.1 RELEASE, pero nosotros utilizaremos la 1.1.2, La cual debemos de
descargarla y copiarla en la ruta en la que se ubica el STS. (Figura 1)

Trabajaremos con una Base de datos MySql, en la que ya debemos de tener todas nuestras
tablas creadas as como tambin los Constraint respectivos. Ojo es preferible tener bien
organizada la BD para no hacer demasiados cambios en el diseo de las pginas. A
continuacin una lista de tablitas creadas en el Mysql (Figura 2)

Spring Roo

Pgina 2

Desarrollo Web

Yonni Lopez Vitor

Continuamos, iniciamos el STS, esa parte es fcil, para que vean que no hay truco en esto,
como pueden ver no existe ningn proyecto cargado para que luego no digan que ya lo haba
desarrollado, y que solo lo estoy mostrando. De esta manera no terminaran abuchendome

(Figura 3)
Atencin
Bueno para no tener Problemas, Configuramos las extensiones para esto presionamos en el
icono de Spring el cual se muestra en la imagen (el que est encerrado en la bolita roja
chiquita), luego nos ubicamos en la pestaa Extensiones y posteriormente en el link Configure
Extensions . (Figura 5)

Spring Roo

Pgina 3

Desarrollo Web

Yonni Lopez Vitor

Seleccionamos Spring Roo 1.1.2 RELEASE y presionamos configurar y finalmente presionamos


ok. Como se puede ver tambin tenemos la versin 1.1.1 RELEASE pero como ya les haba
comentado utilizaremos la 1.1.2. (Figura 6)

Spring Roo

Pgina 4

Desarrollo Web

Yonni Lopez Vitor

Creando Nuestro Spring Roo Project


Ahora si mucha atencin, Creamos un proyecto Spring Roo de la siguiente manera
File  New Spring Roo Project (Figura 7)

Ahora nos aparecer la Siguiente ventana, en la cual debemos ingresar el nombre del proyecto
y el nombre del paquete. Bueno yo le puse as (intranet) no quise hacerme bolas. Y pulsamos
Next. (Figura 8)

Spring Roo

Pgina 5

Desarrollo Web

Yonni Lopez Vitor

Ahora el Spring Roo nos pide por favor que le demos click para finalizar y de esta manera
crear el nuevo proyecto. Se dan cuenta que hasta nos ruega para usarlo. Bueno le damos Click
en Finish. (Figura 9)

Spring Roo

Pgina 6

Desarrollo Web

Yonni Lopez Vitor

Al darle Finalizar Nos parecer una ventanita, la cual nos informa que se est creando todos los
paquetes que se ven en esta imagen. (Figura 10)

Spring Roo

Pgina 7

Desarrollo Web

Yonni Lopez Vitor

Ingeniera Reversa
Ahora si lo mas esperado, cuando el Spring Roo Termina de crear el proyecto y cargar todos
sus componentes necesarios se posiciona en la parte inferior como se ve en la siguiente
imagen. Ahora bien empezamos a ejecutar una serie de comandos Donde? Pues lo encerr en
rojito por si acaso. (Figura 11)

Spring Roo

Pgina 8

Desarrollo Web

Yonni Lopez Vitor

Eleccin del Framework de persistencia


Bueno como ya tenemos nuestro proyecto creado comenzamos eligiendo el framework de
persistencia. Para esto Digitamos lo siguiente: persistence setup --provider HIBERNATE -database MYSQL --databaseName dw2011cp007 --userName root --password root
Estas lneas dicen que utilizaremos hibrnate y que trabajaremos con MySQL donde el nombre
de la base de datos es dw2011cp007 el usuario es root y el pasword es root . Claro si la
configuracin de tu MySQL es distinta debern modificarla. A continuacin presionaremos la
tecla ENTER. . (Figura 12)

Spring Roo

Pgina 9

Desarrollo Web

Yonni Lopez Vitor

Ahora bien al presionar Enter, actualizara nuestro aplication context y creara el


persistence.xml y el database.properties . (Figura 13)

Bueno si de casualidad te confundiste en la configuracin de tu base de datos en el nombre de


la BD, el usuario o clave y quieres modificarlo, Fcil solo entras al
SRC_MAIN_RESOURCES\META-INF\spring\database.properties
Solo le das click a
ese link en azulito y te mostrara la siguiente ventana en la cual podrs modificar la
configuracin y luego proceders a grabar. Claro tambin lo puedes hacer por la misma
consola del Roo Shell pero no creo que quieras hacerte bolas. (Figura 14)

Spring Roo

Pgina 10

Desarrollo Web

Yonni Lopez Vitor

CUIDADO
La primera vez que utilice Spring Roo me apareci un mensaje al momento de ingresar el
comando que sirve para hacer la ingeniera reversa, este mensajito no lo tengo por imagen
pero deca que no poda conectarse a la base de datos Mysql y que faltaba algn Jar. Pero no
se preocupen lo llegue a descubrir y aqu est la lnea que deben de ejecutar antes de aplicar
la ingeniera reversa.
addon install bundle --bundleSymbolicName org.springframework.roo.wrapping.mysqlconnector-java
Solo ejecutan esta lnea y listo se acabo el problema.
Pero si no se acabo el problema ejecuten esta lnea
primero
download accept terms of use
Este comando libera algunos permisos locales para
descargar libreras de los repositorios de Spring Roo.
Reinician el STS y Adicionalmente no se olviden de
actualizar (El "rebuild index" de la vista "Maven
repositories")
(Windows-> Show view ->Other ->Maven
Repositories)

AHORA SI INGENIERIA REVERSA?


Creo que la mayora estar diciendo, a qu hora empiezo a ver mis tablas en mi proyecto.
Bueno no se apresuren ahora digitamos lo siguiente:
database reverse engineer --package ~.dominio --schema dw2011cp007
Este comando me har ingeniera reversa de la base de datos configurada en
database.properties y el esquema indicado a las clases del paquete dominio (dentro del
paquete raz del proyecto): .(Figura 15)

Spring Roo

Pgina 11

Desarrollo Web

Yonni Lopez Vitor

Como pueden ver dentro de nuestro paquete dominio ha creado todo lo referente a nuestra
base de datos , asi mismo tambien se puede apreciar la creacion de las entidades. ha generado
los clsicos .aj derivados del archivo .java. Aunque existe un nuevo .aj llamado
'Entidad_Roo_DbManaged.aj', este aspecto es el que contiene los campos de nuestra entidad
que mapean a las columnas que Roo encontro en las entidades. . (Figura 16)

Spring Roo

Pgina 12

Desarrollo Web

Yonni Lopez Vitor

Generacin de la capa de presentacin


Roo permite la creacin de la interfaz grfica web, que comprende de una alta, baja,
modificacin y listado. Se puede especificar de qu objeto de negocio se requiere o bien
crearla para todos.
Para esto digitamos esta lnea controller all --package ~.web
(Figura 17)

Solo presionan Enter y listo ya no puse la imagen de que es lo que arroja porque asu es
demasiado y mi archivo pesara mas. Pero ya se imaginan que creara los view, form, etc.

POR FIN LO EJECUTARE?


Creo que ya es hora, ahora vern lo poderoso que es el Spring Roo. Pero Primero Inicializamos
el Servidor. (Figura 18)

Spring Roo

Pgina 13

Desarrollo Web

Yonni Lopez Vitor

Ahora digitamos en nuestro Browser lo siguiente http://localhost:8080/intranet/ y listo


chachachachannnnn.
Ah est por fin el famoso proyecto Spring Roo, bueno me imagino que estn pensando asu
tanto pa eso. Bien feo esta y encima con el header del Spring Roo. Bueno no te lamentes por
el esfuerzo, todo esto es modificable los estilos, los formularios, los mens se puede adaptar a
tu modo. (Figura 19)

Spring Roo

Pgina 14

Desarrollo Web

Yonni Lopez Vitor

Bueno ahora con un solo comando modificaremos todo el estilo. S que se emocionaron pero
esto no se puede hacer. Ahora si deben de trabajar en esto y en un par de cositas mas, ya que
si bien el Spring Roo te ahorra tiempo y trabajo tambin tenemos que pulir el proyecto, ya que
hay ciertas cosias que se escapan de su alcance. (Figura 20)
Bueno no soy un experto en CSS pero hice lo que pude.

Si queremos que nuestro proyecto Spring Roo con ingeniera reversa salga cachete debemos
de tener una base de datos bien estructura me imagino que eso lo tiene por diseo de BD
bueno adems de ser paciente y persistente.
Adems existe ciertos problemas con las relaciones de N-M de uno a muchos y de muchos a
muchos ya que afecta a todas las entidades y el diseo de las listas se loquea pero es simple
entras a los JSPX y le quitas esas columnas y nada ms.

Spring Roo

Pgina 15

Yonni Lopez Vitor

Desarrollo Web

OTROS DATOS PARA EL DISEO

AQUI SE ECUENTRA EL TAMAO DEL ANCHO DE LA COLUMNA DE LAS LISTAS


intranet/src/main/webapp/WEB-INF/tags/form/fields/column.tagx

AQUI SE ECUENTRA LOS ESTILOS DE LA PAGINA


Standar.css

AQU SE ENCUENTRA LOS NOMBRES DE LAS COLUMNAS TILULOS Y TODO LO QUE EL SPRING
TE LO PONE A LO SALVAJE
web\intranet\src\main\webapp\WEB-INF\i18n\application.properties

AQU SE ENCUENTRAN LOS NOMBRES DE LOS BOTONES TOLP TIP TEXT Y OTROS QUE EL
SPRING LO PONE EN INGLES
web\intranet\src\main\webapp\WEB-INF\i18n\messages.propertie

ESTA ES LA RUTA EN LA QUE SE ENCUENTRAN LA LOS FORMULARIOS (LISTAS,


MODIFICACIONES,ETC)
web\intranet\src\main\webapp\WEB-INF\views

BUENO CREO QUE ESTO ES TODO LOS DEJO PARA


QUE PRUEBEN CONMIGO SERA HASTA LA
PROXIMA

Spring Roo

Pgina 16

También podría gustarte