Professional Documents
Culture Documents
Base de Datos
En este material veremos el tema de las bases de datos de android a través de los siguientes
puntos: Almacenamiento en Bases de Datos, Usar Bases de Datos, los Frameworks y Sugar ORM.
Finalizaremos con ejercicios de aplicación de lo aprendido.
Comencemos!
2
© UPC. Todos los derechos reservados.
Base de Datos
Android brinda varias opciones para hacer persistentes los datos de la aplicación desarrollada.
Las opciones de almacenamiento de datos son las siguientes:
Shared Preferences, que almacenan datos privados primitivos en pares key-value.
Internal Storage, que almacenan datos en la memoria del dispositivo.
External Storage, que almacenan datos públicos en la memoria del dispositivo.
SQLite Databases, que almacenan datos estructurados en una base de datos privada.
Network Connection, que almacena datos en la web en sus propios servidores.
La alternativa a elegir está en función a las necesidades específicas, por ejemplo, si los datos
deberían ser privados para nuestra aplicación o accesibles para otras aplicaciones, o cuánto
espacio de almacenamiento requiere dicha data.
3
© UPC. Todos los derechos reservados.
Base de Datos
Android proporciona soporte completo para las bases de datos de SQLite. Las bases de datos
que serán accesibles por nombre para cualquier clase dentro de la aplicación, pero no fuera de
ella.
Pueden acceder a más información a través del enlace en pantalla.
El método recomendado por Google para armar una base de datos SQLite es crear una clase
descendiente de la clase SQLiteOpenHelper y realizar un override del método onCreate(). Dentro
del método pueden ejecutar un comando SQLite para crear las tablas de sus base de datos.
4
© UPC. Todos los derechos reservados.
Base de Datos
5
© UPC. Todos los derechos reservados.
Base de Datos
6
© UPC. Todos los derechos reservados.
Base de Datos
7
© UPC. Todos los derechos reservados.
Base de Datos
8
© UPC. Todos los derechos reservados.
Base de Datos
Para declarar entidades, basta con cumplir dos requisitos: especificar que la clase modelo
extienda SugarRecord. Y mMantener el constructor por defecto.
9
© UPC. Todos los derechos reservados.
Base de Datos
Para guardar una instancia de entidad, sólo requiere invocar al método save(). En el caso del
nuevo objeto creado por ustedses, esto se traduce en una operación de INSERT en la base de
datos, de otro modo se comporta como una operación de UPDATE.
10
© UPC. Todos los derechos reservados.
Base de Datos
Para buscar una instancia de una entidad, cuentan con el método findById(), el cual requiere la
clase con la que retornará el resultado y el valor de Id que están buscando.
11
© UPC. Todos los derechos reservados.
Base de Datos
Para actualizar una instancia de entidad, pueden generarla con el método findById(), realizar
luego las modificaciones sobre sus atributos y guardar la nueva versión del objeto con el método
save().
12
© UPC. Todos los derechos reservados.
Base de Datos
Para eliminar una instancia de entidad, pueden utilizar el método delete(). Esto se comporta a
nivel de la base de datos como una sentencia DELETE.
13
© UPC. Todos los derechos reservados.
Base de Datos
SugarORM ofrece dos métodos que permiten aplicar operaciones a colecciones de objetos.
listAll() permite obtener todos los objetos de una entidad. deleteAll() elimina todos los objetos
de una entidad, a la vez que elimina los registros en la tabla de base de datos.
14
© UPC. Todos los derechos reservados.
Base de Datos
15
© UPC. Todos los derechos reservados.
Base de Datos
Por otro lado, en el caso de Book, la dependencia de Author se representa con un atributo del
tipo Author, tal como se aprecia en el ejemplo. SugarORM genera de forma automática una
columna author en la tabla book, conteniendo un foreign key hacia la tabla author.
16
© UPC. Todos los derechos reservados.
Base de Datos
Se puede incluir el atributo relacionado en una consulta, utilizando el valor del método getId()
como el valor para el criterio de búsqueda, tal como se observa en el ejemplo.
17
© UPC. Todos los derechos reservados.
Base de Datos
La asignación de valores para atributos objeto está alineada con el paradigma orientado a
objetos. De esta forma, tal como se aprecia en el ejemplo, el asignar un nuevo valor a un
atributo objeto se implementa con una asignación que recibe el valor resultante de la llamada al
método accesor getAuthor() que retorna un objeto Author.
18
© UPC. Todos los derechos reservados.
Base de Datos
19
© UPC. Todos los derechos reservados.
Base de Datos
En adición a ello, las clases que requerían implementar persistencia de datos querían cumplir
con dos requisitos, extender la clase SugarRecord y contar con una versión del método
constructor sin parámetros.
20
© UPC. Todos los derechos reservados.
Base de Datos
21
© UPC. Todos los derechos reservados.
Base de Datos
22
© UPC. Todos los derechos reservados.
Base de Datos
23
© UPC. Todos los derechos reservados.