Skip to content

Proyecto Android: implementación de relaciones entre tablas con GreenDAO

ORM-GreenDAO (II)
1. Uso GreenDAO en Android: relaciones entre tablas de una base de datos
2. Proyecto Android: implementación de relaciones entre tablas con GreenDAO
3. Videotutorial: proyecto base de datos en Android con GreenDAO
4. Proyecto ORM GreenDAO: Relación entre Tablas (Android Studio – Android 5.0)

Continuamos con el Proyecto Android que presentamos en el tutorial anterior de esta serie. Vamos a crear las relaciones entre entidades (tablas) con el ORM GreenDAO, de acuerdo a la estructura de base de datos que diseñamos.

Al final del tutorial puedes descargar todo el código del Proyecto

Recordamos, según la nota que incluimos, que se ha simplificado el modelo de datos para centrar nuestra atención en cómo se definen las relaciones. En este ejemplo un profesor puede impartir hasta tres asignaturas, pero cada asignatura sólo puede ser impartida por un profesor.

Proyecto auxiliar Java «Entidades 1_N»

Método main() Clase Java (proyecto auxiliar Java, para crear los objetos DAO en el proyecto Android):

Método para crear las entidades, campo o columnas de tablas, y establecer la relación de 1:N entre las tablas Alumno y Asignaturas:

Estructura de Clases generadas con GreenDAO

  • Clase ProfesoresDao.java: clase DAO e interfaz encargada de trabajar con objetos Profesores.
  • Clase AsignaturasDao.java: clase DAO e interfaz encargada de trabajar con objetos Asignaturas.
  • Clase DaoMaster.java: clase encargada de crear las Tablas y actualizar la versión del esquema sin que nosotros debamos realizar ningún tipo de cambio internamente.
  • Clase DaoSession.java: clase encargada de manejar las identidades de objetos, manteniendo la caché de sesión para mejorar el rendimiento.
  • Clase Profesores.java y Clase Asignaturas.java: clase encargada de implementar los métodos de acceso get y set, que nos permiten asignar y devolver un valor de un atributo de los objetos Profesores y Asignaturas, proporcionando un grado de encapsulación que restringe el acceso a las variables miembro.

Ejercicio
Crea un ejemplo de estructura de Base de Datos en el que el tipo de relación sea de 1 : N.

Proyecto Android «Relaciones_ORM_GreenDAO»

Variables a nivel de Clase:

 

Método onCreate() donde inicializamos los componentes de la interfaz de usuario, además de crear un Array de String para llenar el componente Spinner:

 

Vemos en esta imagen la interfaz de usuario que vamos a utilizar:

Interfaz de la App

Método guardarDatos(): evento On Click() del botón «Guardar», que nos permitirá almacenar en la Base de Datos «Matrícula», los datos introducidos en los campos de la interfaz de usuario, comprobando previamente que se han introducido el nombre y los apellidos del Profesor, se ha seleccionado un curso al que imparte clase y se ha indicado al menos una asignatura.

 

Ejercicio: con la estructura de Base de Datos creada anteriormente, y con el uso de la API GreenDAO, realiza un proyecto Android, en el que se puedan realizar tareas de consulta e inserción de datos con relaciones de 1:N.

Proyecto «Entidades 1_1»

Para este mismo ejemplo pero estableciendo una relación de 1 : 1 se realizarían los siguientes cambios:

 

En la siguiente imagen presentamos un Diagrama UML o Lenguaje Unificado de Modelado, que nos sirve principalmente como lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. En este diagrama se han definido las Clases, Métodos y Propiedades que intervienen en el proyecto utilizado como ejemplo, para entender el funcionamiento de la API GreenDAO y cómo se establecen las relaciones entre tablas (pincha en la imagen para tener una vista ampliada):

 

Diagrama UML del proyecto Android

Descarga del Proyecto

Download

 


Autor: José Antonio Gázquez Rodríguez- Academia Android

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies. También se ha incluido en pruebas un Agente AI que incluye sus propias cookies   
Privacidad