GreenDao: Accediendo a la base de datos en Android

Muchas veces cuando desarrollamos aplicaciones Android nos topamos con la necesidad de acceder a la base de datos, para ello debemos hacer entre otras cosas la creación/eliminación de la tabla dentro de la base datos o los distintos tipos de querys (select, update, insert, delete). Cada una de estas cosas las debemos hacer por cada una de las tablas que vayamos necesitando crear, por lo cual esto resulta en algo un tanto tedioso y repetitivo de hacer. Por los motivos antes expuestos es que la gente de GreenDao viene a solucionarnos el problema.

¿Que es GreenDao?

GreenDao es un proyecto open-source que nos permite la creación de una interfaz a través de la cual podemos acceder a la base de datos que ya tienen incorporada los dispositivos con Android.  GreenDao debe ser visto como lo que se conoce como ORM (Object Relational Mapping) por lo cual nos permite una vez creada la estructura de la tabla generar la entidad y el dao correspondiente los cuales tienen relación directa con la estructura de la base de datos.

greenDAO

Algunas de las características que podemos mencionar de este framework son:

  • ORM libre
  • Alta performance
  • No tiene gran consumo de memoria
  • Esta optimizada para Android
  • Permite la generación automática de entidades y daos.

¿Como lo agrego a mi proyecto?

GreenDao se compone a grandes rasgos de dos cosas: el framework y el generador de código. Este ultimo es el que tendremos que utilizar para generar la estructura de las tablas (todo esto por medio de código Java).

Dependiendo de como hayamos encarado el desarrollo de nuestra aplicación deberemos bajar los .jar desde la pagina o modificar nuestro POM para que Maven se encargue de bajar las dependencias por nosotros. Ademas de Maven, GreenDao ya posee soporte para lo que es Gradle.

En el caso de Maven deberemos añadir estas dos dependencias:

Debe tenerse en cuenta que quizás las versiones actuales de los artefactos pueden ser superiores a las mencionadas en este post. Para chequear cuales son las ultimas versiones disponibles se puede ingresar en el repositorio central de Maven.

¿Como genero mis entidades y daos?

Una vez que tengamos dentro de nuestro proyecto ambas dependecias deberemos crear una clase que sera la que contendra la definicion de las tablas que se usaran. Dentro de la misma podremos definir uno o mas esquemas de base de datos con sus respectivas tablas, los atributos de las mismas y donde se generara el codigo.

A modo de ejemplo mostramos el siguiente codigo:

Como se ve en el codigo que se muestra en la parte superior la cantidad de codigo es minima para generar la estructura de una nueva tabla. Ademas de los tipos de propiedades que se muestran en el ejemplo que puede agregarsele a una entidad estan: float, double, long, short dependiendo del tipo de dato que se necesito usar.

Una cosa que cabe resaltar es que este framework tambien soporta el armado de relaciones entre las tablas ya sea 1 a muchos o muchos a muchos.

Una vez creada todo la estructura de la base de datos lo unico que nos queda sera ejecutar la clase Java y chequear que se hayan generado los archivos correspondientes (DaoMaster, DaoSession, Client, ClientDao). Cada uno de los mismos tiene una funcion bien especifica:

  • Client: Es la entidad que representa la estructura que existe en la base de datos.
  • ClientDao: Esta clase contendra los atributos que tiene una tabla y las setencias de creacion/eliminacion de la misma. Asu vez esta clase extiende de AbstractDao el cual ya define las operaciones basicas que se pueden realizar con cualquier tabla (select, insert, update, delete).
  • DaoMaster: Tendra la responsabilidad de crear/eliminar/actualizar todas las tablas que se encuentran dentro del esquema de base de datos.
  • DaoSession: Se encargara de iniciar la session para la persistencia en la base de datos y de registrar los daos que seran validos para poder ser usados en el proyecto.

¿Como uso los daos?

Para poder usar los daos generados debe hacerse lo siguiente:

Una vez hecho esto se pueden invocar las operaciones basicas como el insert, update, delete, select.

Conclusión

Como puede verse en este post la forma de generar las entidades y los daos es simple facilitando de esta manera realizar una tarea repetitiva. Ademas de esto ultimo debe tenerse en cuenta que la forma de usar los daos una vez creados es igual que cualquier otro ORM como por ejemplo Hibernate.

You may also like...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *