Sei sulla pagina 1di 34

GRAILS

INSTALACIN, CONFIGURACIN Y EJEMPLO C.R.U.D.






CRISTIAN CAMILO ERAZO AGREDO


FACULTAD DE INGENIERA ELECTRNICA Y TELECOMUNICACIONES
INGENIERA DE SISTEMAS
UNIVERSIDAD DEL CAUCA
25 DE SEPTIEMBRE DE 2014



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

INTRODUCCIN

Grails es un framework para aplicaciones web libre desarrollado sobre el lenguaje
de programacin Groovy (el cual a su vez se basa en la Java platform). Grails
pretende ser un marco de trabajo altamente productivo siguiendo paradigmas tales
como convencin sobre configuracin o no te repitas (DRY), proporcionando un
entorno de desarrollo estandarizado y ocultando gran parte de los detalles de
configuracin al programador.
1

Este tutorial va a permitir al usuario socializarse con la herramienta permitindolo
establecer una conexin con la base de datos (en este caso con postgresql, pero
grails permite conectar con mltiples gestores de bases de datos), creacin de
tablas y manejo de restricciones de las mismas, tambin se implementar un
CRUD (esta implementacin la realiza la herramienta con la opcin de scaffold
2
o
scaffolding) y adems, se va a guiar paso a paso sobre la instalacin y
configuracin del entorno de desarrollo (Netbeans IDE
3
).

Herramientas a usar:
1. Grails: Grails 2.4.3
2. NetBeans: NetBeans 7.4
3. Java SDK: Java SDK 8_20
4. PostgreSQL: Postgresql 9.3
5. JDBC: JDBC3 Postgresql Driver 9.3


1
Wikipedia La Enciclopedia Libre, art. Grails
2
Wikipedia La Enciclopedia Libre, art. Scaffold
3
Netbeans.org, Netbeans IDE


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

TABLA DE CONTENIDO


1. INTRODUCCIN

2. TUTORIAL
2.1. Configurando el entorno.
2.2. Creando una aplicacin Grails en NetBeans IDE.
2.3. Conectando la aplicacin con PostgreSQL
2.4. Ejecutando la aplicacin
2.5. Listar, agregar, eliminar y modificar.
2.6. Buscar

3. CONCLUSIONES

4. REFERENCIAS



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

TUTORIAL

Una vez hemos terminado con las descargas de las herramientas, procedemos a
instalarlas una a una y a configurar nuestra mquina.
Grails, no es un instalable, es un empaquetado que contiene un conjunto de
libreras que junto con javac (el compilador de java) nos permitirn desarrollar las
aplicaciones, estas dos herramientas deberemos instanciarlas en nuestras
variables de entorno del sistema.
1. Configurando el entorno.
1.1. Abrimos el panel de control.
1.2. Entramos en Sistema.
1.3. Vamos a configuracin avanzada del sistema.
1.4. En la ventana de propiedades del sistema, escogemos variables de
entorno.
2. Agregamos dos nuevas variables del sistema, una para java y la otra para
grails.
2.1. En la ventana de variables de entorno, escogemos la opcin Nueva
2.2. En la opcin nombre de la variable, ponemos: GRAILS_HOME
2.3. En la opcin valor de la variable, ponemos la ruta en la que est el paquete
descomprimido de Grails.
2.4. Escogemos aceptar.
2.5. Repetimos los pasos 2.1, 2.2 y 2.3 pero, en este caso ponemos como
nombre JAVA_HOME y como valor, la ruta donde est instalado el SDK de
java.
3. Editamos la variable Path de nuestro sistema y le agregamos la ruta de los
ejecutables de las dos herramientas (Java y Grails)
3.1. En la ventana de variable de entorno, buscamos una cuyo nombre es Path.
3.2. Una vez ubicada, la seleccionamos y escogemos Editar.
3.3. En la opcin, valor de la variable, nos situamos al final de la lnea y
escribimos: ;%GRAILS_HOME%\bin;%JAVA_HOME%\bin
3.4. Una vez terminamos esto, aceptamos y cerramos las ventanas.
4. Probamos que todo est funcionando como se debe.
4.1. Abrimos una terminal de consola.
4.2. Escribimos el comando: javac versin y miramos que funcione y nos d el
valor de la versin de nuestro compilador de java.
4.3. Luego, escribimos el comando: grails version y miramos que funcione y
nos d el valor de la versin de grails que hemos descargado.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

Anexo video (en ingls) de como instalar la herramienta grails en windows:


Para instalar grails en otros sistemas operativos:
Linux: http://www.grailsexample.net/installing-a-grails-development-environment-
on-linux/
Mac OS: http://www.grailsexample.net/installing-a-grails-development-
environment-on-os-x/

Una vez hemos terminado con la instalacin procedemos a configurar grails para
que trabaje con NetBeans, cabe destacar que grails se puede usar con Eclipse
4
y
con consola de comandos o terminal, tambin con TextMate e IntelliJ IDEA
5
. Por
comodidad, yo voy a usar NetBeans IDE, puesto que netbeans provee un plug-in
(Groovy/Grails) que reconoce automticamente los proyectos de Grails.


4
Grails.org, art. STS Integration
5
Grails.org, art. Getting Set Up in an IDE


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

5. Creando una aplicacin Grails en NetBeans IDE.
5.1. Abrimos netbeans.
5.2. Vamos a Archivo y escogemos la opcin Proyecto Nuevo.
5.3. En la ventana, escogemos en categora Groovy y en Proyectos Grails
Application, despus escogemos siguiente.
5.4. En la ventana de la nueva aplicacin grails, escogemos el nombre, en este
caso se va a llamar Ejemplo, como es la primera vez que vamos a usar
grails, debemos configurar el entorno.
6. Configurando Grails (opcional: aadir la documentacin de grails)
6.1. (opcional) Vamos a la pgina de Grails, descargamos la documentacin,
despus de descargarla, la descomprimimos, entramos a la carpeta
descomprimida y ubicamos el archivo index.html.
6.2. (opcional) copiamos la direccin del archivo index.html en la opcin Groovy
Doc de la ventana de Opciones de NetBeans.
6.3. En la opcin Grails Home ponemos la ruta en la cual tenemos instalado
Grails.
6.4. Aceptamos y continuamos con la aplicacin Ejemplo.
7. Una vez configurado Grails escogemos la opcin terminar y esperamos a que se
creen los archivos y carpetas de nuestro proyecto.

Imgenes del proceso:

Imagen 1: Creando nuevo Proyecto en NetBeans IDE.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 2: Seleccionando Groovy/Grails en NetBeans IDE.


Imagen 3: Asignando el nombre al nuevo proyecto, iniciar configuracin.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 4: Ingresando la ruta de la documentacin (opcional) y la ruta del paquete de
Grails. (Estas son las rutas de mi caso, no es necesario ubicarlas en el mismo sitio).


Imagen 5: Terminar el proceso de configuracin.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 6: El nuevo proyecto se ha creado.
8. Creando una clase de dominio
8.1. Damos clic derecho sobre el paquete Domain Classes.
8.2. Nos deslizamos hasta nuevo y escogemos Grails Domain Class
8.3. En la ventana de la nueva clase, escogemos el nombre.
8.3.1. El nombre de la clase es, el nombre que le vamos a dar a la tabla de
la base de datos (Grails trabaja bajo el paradigma CoC convencin
sobre configuracin, es decir que nos ahorrar la configuracin si
mantenemos un orden en la sintaxis), para este caso, vamos a llamarla
Empleado, aceptamos y esperamos.
8.4. Una vez creada la clase Empleado, pasaremos a poner los atributos de
dicha clase, en Grails, los atributos representan los campos de la tabla;
Para este ejemplo pondremos cinco: cdigo, nombres, fecha de
nacimiento, una referencia al departamento en el que labora y el salario del
empleado.
8.4.1. Por convencin, Grails agrega a cada tabla dos campos, id y versin,
estos campos son la llave primaria de la tabla y la versin en la que va
la tabla respecto a sus modificaciones; Como en nuestro caso no nos
interesa saber las modificaciones, quitamos el campo versin, adems
Grails nos permite estilizar nuestro modelo.
8.4.2. Para realizar la estilizacin, debemos agregar una propiedad a
nuestra clase Empleado, dicha propiedad es conocida como
mapping
6
y nos permitir configurar la forma en la que Grails mapea
las clases dominio a la base de datos.

6
Grails.org, art. mapping


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

8.4.3. Tambin debemos agregar ciertas restricciones a los datos que el
usuario va a ingresar, para esto utilizaremos la propiedad constraints
7

y agregar la respectiva referencia entre Empleado y Departamento.
8.5. Despus de crear la clase Empleado, pasaremos a crear la clase
Departamento, con el atributo: nombre del departamento, aprovecharemos
que Grails nos crea la llave primaria para las tablas, en este caso, la llave
se va a llamar cdigo.
8.6. Ahora, con las clases dominio, podemos generar automticamente los
controladores y las vistas, para esto nos situamos sobre la clase dominio y
damos clic derecho, escogemos la opcin Generate-All y esperamos.


Imagen 7: Seleccionando nueva Clase Dominio.


7
Grails.org, art. constraints


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 8: Nombrando la nueva clase.


Imagen 9: Clase Empleado creada.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 10: Clase Empleado implementada.


Imagen 11: Clase Departamento implementada.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 12: Seleccionando la opcin de generar todo (vistas y controladores), para la
clase dominio Empleado.


Imagen 13: Seleccionando la opcin de generar todo para la clase Departamento.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 14: Controlador EmpleadoController generado automticamente (implementa las
opciones bsicas del CRUD para Empleado).


Imagen 15: Controlador DepartamentoController generado automticamente.

9. Conectando la aplicacin con PostgreSQL.
9.1. Abrimos la carpeta Configuration del proyecto.
9.2. Abrimos el archivo DataSource.groovy


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

9.3. Cambiamos los valores de las lneas driverClassName, username y
password, por: "org.postgresql.Driver", el nombre de usuario de la base
de datos, para mi caso "postgres", y la contrasea que hemos definido
para el usuario, en mi caso "9011".
9.4. En el entorno enviroments vamos a la propiedad dbCreate y cambiamos
su valor por "update" (se refiere a que cada vez que se inicie o apague el
servidor, la base de datos no se va a eliminar y cada vez que se realicen
cambios, dichos cambios se van a actualizar, tambin, nos crea las tablas
si estas no existen.) y cambiamos el valor de la propiedad url por
"jdbc:postgresql://localhost:puerto/base_de_datos", para mi caso ser
"jdbc:postgresql://localhost:5432/postgres".
9.5. Repetimos el paso anterior para los otros dos entornos faltantes (test y
production).
9.6. Procedemos a agregar el JDBC de postgresql a nuestro CLASSPATH.
9.6.1. Vamos a la ubicacin en donde est el JDBC de postgresql.
9.6.2. Una vez situados en el archivo, le damos copiar.
9.6.3. Abrimos nuestro entorno de programacin NetBeans IDE y nos
ubicamos sobre la carpeta libraries de nuestro proyecto y le damos
pegar.


Imagen 16: Configurando la conexin.

10. Ejecutando la aplicacin.
10.1. Damos clic derecho sobre nuestra aplicacin Ejemplo y escogemos
la opcin Compile y esperamos.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

10.2. Una vez haya terminado de compilar, damos clic derecho sobre la
aplicacin y escogemos la opcin Run y esperamos.
10.3. Las vistas se renderizarn de forma automtica y la aplicacin
iniciar en el explorador web (Browser) que tengamos predeterminado en
nuestro sistema, Grails nos ofrece una pgina inicial donde encontramos
cuatro enlaces, los que nos interesan a nosotros son dos:
ejemplo.DepartamentoController y ejemplo.EmpleadoController, estos
enlaces nos llevaran a la pgina donde podremos acceder a las opciones
del CRUD de departamento o de empleado.


Imagen 17: Ejecutando la aplicacin Ejemplo.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 18: Pgina de inicio de la aplicacin.


Imagen 19: Pgina de inicio del controlador de Empleado.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 20: Pgina de inicio del controlador de Departamento.

11. Listar, agregar, eliminar y modificar.
11.1. Como pudimos observar, grails nos lista los elementos que tenemos
ingresados en nuestra base de datos, el orden de los campos depender
del orden que hayamos definido en nuestra estilizacin y la lista viene con
paginacin, por defecto nos mostrar los 10 primeros elementos.
11.2. Para agregar un nuevo elemento a la base de datos, basta con
seleccionar el icono de Nuevo Nombre_Elemento, donde el nombre del
elemento depender de que controlador hemos escogido.
11.2.1. Despus de haber elegido la opcin Nuevo
Nombre_Elemento, nos aparecer la vista del formulario con los
campos importantes a ser llenados, los datos dependern tambin de
la estilizacin que hayamos hecho, para mi caso, los datos son
necesarios y no pueden ser vacos (exceptuando la referencia a
Departamento en la clase Empleado) y el valor de cdigo de la
clase Empleado debe ser nico.
11.2.2. Una vez hemos terminado de elegir los datos, damos clic en
Crear y nos desplegar la vista show con los datos del elemento
junto con un mensaje indicando que todo ha sido ingresado
correctamente.
11.3. La opcin de eliminar es simple, damos clic sobre el elemento que
queremos eliminar y nos despliega la vista show, en ella encontramos la
opcin de eliminar o editar.
11.3.1. Damos clic en la opcin de eliminar y nos aparecer un
mensaje de confirmacin, aceptamos y listo, nos devuelve a la vista


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

index y nos mostrar un mensaje diciendo que el elemento ha sido
eliminado.
11.4. Para editar, hacemos lo mismo que en el paso 11.3, solo que esta
vez damos clic en la opcin de editar.
11.4.1. El controlador nos enviar a la vista edit, donde se muestran
los datos del elemento a ser editado, para editar solo basta con
cambiar los datos del formulario y dar clic en la opcin de actualizar.
11.4.2. Una vez ha terminado, nos devuelve a la vista show para ver
los nuevos valores y nos muestra un mensaje que nos dice que el
elemento ha sido actualizado.


Imagen 21: Agregar un nuevo Empleado.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 22: Formulario de Empleado.


Imagen 23: Crear elemento.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 24: Error, el cdigo de Empleado debe ser nico.


Imagen 25: Cambiando datos.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 26: Empleado agregado correctamente.


Imagen 27: Volviendo a la lista de Empleados.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 28: Seleccionando al Empleado a eliminar.


Imagen 29: Seleccionando la opcin Eliminar.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 30: Aceptando la confirmacin.


Imagen 31: Elemento eliminado correctamente.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 32: Editando un elemento.


Imagen 33: Cambiando datos y seleccionando Actualizar.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 34: Edicin realizada correctamente.

12. Buscar
12.1. Para las bsquedas, Grails ofrece una manera dinmica y sencilla de
generarlas.
12.2. Primero, vamos a ir a crear en nuestro controlador una accin que se
llama bsqueda, abrimos el controlador y Grails nos habr creado para
cada accin un mtodo que se llama por convencin igual que las vistas
que renderiza (show, index, etc), lo creamos con def busqueda = { }.
12.3. Una vez creemos la accin, pondremos las sentencias de bsqueda,
Grails utiliza una convencin para las bsquedas, en nuestro caso, como
no sabemos exactamente cuntos datos van a regresar de la consulta
usaremos el mtodo findAll
8
que nos retornar una lista de elementos del
dominio que cumplan una restriccin.
12.4. Para este caso, haremos lo ms simple posible la consulta,
pondremos un campo de texto (en la vista) que va a recibir los parmetros
a buscar y usaremos una bsqueda por cdigo y por nombre, usaremos
findAllBy
9
de la siguiente manera:
def Busqueda = Empleado.findAllByCodigoLikeOrNombresLike
que recibe dos parmetros, estos parmetros son los que llegan desde la
vista, para acceder a ellos, usaremos la estructura params
10
que contiene
todos los datos que son enviados al controlador desde la vista, para este
caso pondremos como parmetros:

8
Grails.org, art. findAll
9
Grails.org, art. findAllBy
10
Grails.org, art. params


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

"%"+params.inputBusqueda+"%","%"+params.inputBusqueda+"%", ya que
el usuario en nuestra vista va a ingresar una sola consulta pero, ser
buscada tanto por cdigo como por nombres (los % representan la
bsqueda por like del SQL, el elemento inputBusqueda es un elemento
de un formulario de la vista, esto lo crearemos ms adelante).
12.5. Ya con los elementos obtenidos, debemos renderizar la vista, para
esto usaremos el mtodo ModelAndView
11
que nos va a permitir
renderizar una vista en base a un modelo, este mtodo nos permite
retornar los dos de manera simultnea, para retornarlo lo haremos de la
siguiente forma:
return new ModelAndView("/empleado/index",
[empleadoInstanceList: Busqueda])
Este cdigo nos dice que nos va a renderizar la vista index poniendo los
datos de la bsqueda en empleadoInstanceList.
12.6. Con esto termina la programacin de la clase controlador de
empleado, el mtodo findAllByCodigoLikeOrNombresLike, no est
definido, pero Grails lo crea dinmicamente, ahora solo nos queda crear el
campo de texto que va a utilizar el usuario en nuestra vista, para esto,
vamos a la carpeta Views and Layouts o views y dentro encontraremos
dos carpetas, una de empleado y la otra de departamento.
12.7. Abrimos la carpeta de empleado y vamos a la vista index.gsp,
dentro de este archivo encontraremos todo el cdigo que se va a mostrar
en la pgina web; crearemos un formulario con nombre bsqueda y
method post y dentro de este formulario pondremos el texto Buscar
Empleado y agregaremos una etiqueta que capture el texto y otra que nos
permita enviar los datos al controlador, esto lo haremos de la siguiente
manera:
<form name="busqueda" method="post">
<span class="menuButton">
Buscar Empleado
<g:textField name="inputBusqueda"
value="${inputBusqueda}"/>
</span>
</form>
12.8. Ya con esto hemos terminado de crear un buscar por nombre y por
cdigo, solos nos queda guardar y esperar que NetBeans IDE compile de
nuevo las clases modificadas; Despus de esto ya podremos ver la pgina
de empleados con la caja de texto y el Buscar Empleado. Para mi
ejemplo, he cogido una nueva pgina que llam busqueda.gsp y agregu
ciertos mensajes para que la bsqueda se vea mejor, adems, he

11
Grails.org, art. modelsAndViews


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

modificado las otras pginas agregndoles un enlace que los lleva a la
pgina de bsqueda.

Imagen 35: Implementacin de bsqueda en el controlador.


Imagen 36: Implementacin de bsqueda en la vista.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 37: Seleccionando la opcin de buscar en la vista index.


Imagen 38: Buscando empleado por cdigo.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 39: Empleado por cdigo, encontrando.


Imagen 40: Buscando por parte del cdigo, once elementos encontrados.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 41: Buscando por parte del nombre, encontrados dos elementos.


Imagen 42: Buscando un elemento inexistente.


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.


Imagen 43: Paginacin en la lista de empleados, pgina uno.


Imagen 43: Paginacin de la lista de empleados, pgina dos.

Link de mi aplicacin Ejemplo: OneDrive - CristianErazo - Publico - Ejemplo


Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

CONCLUSIONES

Grails es un framework de desarrollo gil que ayuda en gran
medida al programador en la generacin de cdigo de forma
dinmica, y lo logra gracias a Groovy.

Grails es una herramienta de desarrollo pesada ya que
requiere cargar una gran variedad de plug-in y por esto requiere
de una buena mquina para poder ejecutarla.

Grails es una herramienta que facilita mucho cdigo al
programador, pero carece de herramientas para la parte del
front-end de la aplicacin.

Grails permite configurar distintos ambientes o entornos de
ejecucin, ya sea para realizar pruebas o trabajar con diferentes
bases de datos.

Grails est pensado para ser una herramienta de desarrollo web
gil que oculta al programador parte de la lgica y configuracin
que hay por debajo de la aplicacin para que l se enfoque en su
objetivo.

Recomendara usar Grails en aplicaciones que requieren ser
desarrolladas de manera rpida, puesto que Grails nos permite
enfocarnos en el problema sin pensar mucho en cmo realizar ciertos
detalles como por ejemplo la obtencin de datos, este framework
posee mucha documentacin, la mayora en ingles pero su poder yace
en que implementa muchas tecnologas que se sabe que son tiles y
lo hace de forma transparente.



Cristian Camilo Erazo Agredo Ingeniera De Sistemas Universidad Del Cauca.

REFERENCIAS

http://grails.org/doc/latest/guide/gettingStarted.html

http://www.grailsexample.net/installing-a-grails-development-environment-on-
windows/

http://algo3.uqbar-project.org/unsam/clases/clase1_grails

http://www.uaeh.edu.mx/nuestro_alumnado/icbi/monografias/desarrollo%20agil.pdf

Potrebbero piacerti anche