0% encontró este documento útil (0 votos)
31 vistas

DEM T11 Almacenamiento SQLite

El documento describe las alternativas para el almacenamiento de datos en dispositivos Android, incluyendo preferencias, archivos, XML, bases de datos SQLite y proveedores de contenido. Explica cómo usar la clase SQLiteOpenHelper para conectarse a una base de datos SQLite y realizar operaciones CRUD mediante sentencias INSERT, SELECT, DELETE y UPDATE.

Cargado por

Diego Huete
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas

DEM T11 Almacenamiento SQLite

El documento describe las alternativas para el almacenamiento de datos en dispositivos Android, incluyendo preferencias, archivos, XML, bases de datos SQLite y proveedores de contenido. Explica cómo usar la clase SQLiteOpenHelper para conectarse a una base de datos SQLite y realizar operaciones CRUD mediante sentencias INSERT, SELECT, DELETE y UPDATE.

Cargado por

Diego Huete
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 24

DESARROLLO DE

APLICACIONES MOVILES
Almacenamiento de Datos en Android

Ma. Henry Magari Vanegas Rodríguez


CONTENIDO
 Introducción
 Alternativas para el almacenamiento de
datos en Android
 Clase de administración de BD.
 Conectarse a la Base de Datos.
 Operaciones CRUD.
 Sentencia INSERT
 Sentencia SELECT
 Sentencia DELETE
 Sentencia UPDATE
Introducción
 Las aplicaciones suelen guardar la
información a procesar en forma de variables.
 El problema de estas variables es que dejan
de existir en el momento en que la aplicación
es destruida.
 En muchas ocasiones se necesita almacenar
información de manera permanente.
 Existen varias técnicas que permiten recopilar
los datos de la aplicación, con la posibilidad
de compartir estos datos con otras
aplicaciones y usuarios.
Alternativas para guardar datos
permanentemente en Android
 Preferencias
 Ficheros
memoria interna del dispositivo
tarjeta SD.
 XML
librerías SAX y DOM para manipular datos en XML.
 Base de datos:
SQLite.
 Proveedores de contenidos
 Internet
Preferencias
Es un mecanismo liviano que resulta muy
sencillo de utilizar.
La clase SharedPreferences permite
almacenar y recuperar datos primitivos en la
forma de pares clave/valor.
Este mecanismo se suele utilizar para
almacenar los parámetros de configuración
de una aplicación.
Las preferencias de una aplicación se
eliminan cuando ésta es desinstalada.
Ficheros
Se pueden utilizar tres tipos de ficheros en
Android:
En la memoria interna
En la memoria externa (tarjeta SD)
En los recursos de la aplicación.
Por defecto, los ficheros solo son
accesibles por la aplicación que los crea.
También se puede dar acceso de lectura o
escritura al resto de aplicaciones.
XML
Se trata de un estándar fundamental para
la representación de datos, en Internet y en
muchos otros entornos.
Consiste en almacenar información en un
fichero de texto con una estructura
determinada.
Android incorpora dos librerías de Java
para manipular datos en XML:
Java´s Simple API for XML (SAX)
Document Object Model (DOM).
Base de Datos
 Generalmente las aplicaciones requieren el uso
de una base de datos para persistir los datos,
en el caso de los dispositivos Android se cuenta
con una base de datos SQLite.
 Este es un motor de bases de datos que ocupa
poco espacio, no necesita servidor, es
transaccional y viene instalado por defecto en
los dispositivos Android.
 Android ofrece las herramientas tanto para
administrar bases de datos SQLite como para
realizar las consultas necesarias para generar
una aplicación con acceso a datos.
Proveedores de contenidos
 Es un componente opcional de una aplicación que
expone el acceso de lectura/escritura de sus datos
a otras aplicaciones.
 Está sujeto a las restricciones de seguridad que
quieras imponer. Los proveedores de contenido
implementan una sintaxis estándar para acceder a
sus datos mediante URI (Uniform Resource
Identifiers) y un mecanismo de acceso para
devolver los datos similar a SQL.
 Android provee algunos proveedores de contenido
para tipos de datos estándar, tales como contactos
personales, ficheros multimedia, etc.
Internet
 No hay que olvidar que también se puede usar la
nube para almacenar y recuperar datos.
 A través del uso de sockets TCP, HTML y los
servicios web.
Clase de administración de BD
 Para crear, actualizar y conectarse a la base de datos se
debe generar una clase que herede de la clase
SQLLiteOpenHelper, esta clase tiene tan sólo un
constructor, que normalmente no necesitaremos
sobrescribir, y dos métodos abstractos onCreate() y
onUpgrade(), los cuales son llamados automáticamente
cuando se requiera crear y actualizar la base de datos
respectivamente.

 El proceso de creación se hace automáticamente la


primera vez que la aplicación se intenta conectar a la base
de datos, y el proceso de actualización se hace
automáticamente cuando se intenta conectar a la base de
datos indicando una versión superior a la actual.
Clase de administración de BD
Conectarse a la BD
 Para conectarse a la base de datos lo único que se
debe hacer es llamar a la clase que se creó para la
administración de la base de datos, la cual hereda de
SQLiteOpenHelper. El constructor recibe el contexto, el
nombre de la base de datos, un objeto de la clase
CursorFactory y la versión de la base de datos.

 Ya con el objeto instanciado de la clase, se puede


obtener una referencia al objeto SQLiteDatabase, el
cual permitirá ejecutar todas las sentencias, por medio
de dos métodos getReadableDatabase() o
getWritableDatabase() para obtener una instancia de
sólo lectura o de lectura y escritura, respectivamente.
Conectarse a la BD
El último parámetro, la versión, tiene un papel
importante, de acuerdo al número que se envíe puede
suceder:
 Si la base de datos no existe, se llamará automáticamente
al método onCreate() para crearla y se conectará con la
base de datos creada.
 Si la base de datos ya existe y su versión actual coincide
con la solicitada, simplemente se realizará la conexión con
ella.
 Si la base de datos existe pero su versión actual es
anterior a la solicitada, se llamará automáticamente al
método onUpgrade() para convertir la base de datos a la
nueva versión y se conectará con la base de datos
convertida.
Operaciones CRUD
Las operaciones o consultas sobre la base de
datos, conocidas con el acrónimo CRUD:
 Create(Crear/Insertar),
 Retrieve/Read(Consultar),
 Update(Actualizar) y
 Delete (Eliminar).
Que permiten manipular los datos de las tablas de
la Base de Datos.
Sentencia INSERT
Para hacer inserción en una tabla existen dos opciones,
una es usar el método genérico execSQL() o usar el
método insert(). El primero simplemente recibe la consulta
y la ejecuta. El segundo recibe tres parámetros:
 Un String con el nombre de la tabla en la que se insertará el
registro.
 Un String opcional, normalmente se enviará null. Este campo sólo
se usa si se quiere almacenar una fila vacía. Recibe el nombre de
una columna que reciba parámetros null y el método se encarga
de crear la sentencia para guardar una fila con valores vacíos.
 Un objeto de la clase ContentValues con los valores. Este objeto
es una colección de tipo clave / valor, donde la clave es el
nombre de la columna y el valor es el dato a almacenar.
Retorna el id de la nueva fila insertada o -1 si ocurre algún
error.
Sentencia INSERT
Sentencia UPDATE
Para hacer actualización de datos en una tabla también
existen dos opciones, crear la sentencia como un String y
usar el método genérico execSQL() o usar el método
update().
El método update() recibe cuatro parámetros:
 Un String con el nombre de la tabla en la que se actualizará el
registro.
 Un objeto de la clase ContentValues con los valores a actualizar.
 Un String con la cláusula where, si se envía null se actualizarán
todas las filas. Se pueden utilizar comodines ‘?’ y se envían los
valores en el cuarto parámetro.
 Un arreglo de String con los parámetros para la cláusula where
en caso de utilizar comodines en el tercer parámetro, de lo
contrario se puede enviar null.
Retorna: la cantidad de filas afectadas.
Sentencia UPDATE
Sentencia DELETE
Al igual que en las operaciones anteriores se cuenta con
dos opciones, usar el método execSQL() o usar el método
delete().
El método delete() recibe tres parámetros:
 Un String con el nombre de la tabla en la que se eliminará el
registro.
 Un String con la cláusula where, si se envía null se actualizarán
todas las filas. Se pueden utilizar comodines ‘?’ y se envían los
valores en el tercer parámetro.
 Un arreglo de String con los parámetros para la cláusula where
en caso de utilizar comodines en el segundo parámetro, de lo
contrario se puede enviar null.
Retorna: la cantidad de filas afectadas si se envía algo en el
where, 0 en caso contrario. Para eliminar todas las filas y
obtener un recuento se debe enviar "1" en el where.
Sentencia DELETE
Sentencia SELECT
Para consultar información de la base de datos
también se tienen dos opciones, utilizar el método
rawQuery() o utilizar el método query(). En ambos
casos el resultado será un objeto de la clase
Cursor.
El método rawQuery() recibe dos parámetros:
 Un String con la sentencia de consulta completa, para
los datos del where se pueden utilizar comodines ‘?’ y
se envían los valores en el segundo parámetro.
 Un arreglo de String con los parámetros para la
cláusula where en caso de utilizar comodines en el
primer parámetro, de lo contrario se puede enviar null.
Sentencia SELECT

Para recorrer el objeto Cursor se tienen varios métodos, si se hace un


recorrido secuencial, se usan los métodos moveToFirst() y moveToNext(),
devuelven true en caso de que exista un primer registro y un siguiente
registro respectivamente.
Posteriormente para obtener los valores se tienen los métodos: getInt(),
getString(), getDouble(), getFloat(), getShort() y getLong(), se usa el
método adecuado de acuerdo al tipo de dato a recuperar. Todos estos
métodos reciben el índice de la columna a recuperar, los índices empiezan
en cero.
Sentencia SELECT
El método query() recibe siete parámetros:
 Un String con el nombre de la tabla donde se hará la consulta.
 Un arreglo de String con los nombres de las columnas que se
quieren recuperar.
 Un String con la cláusula where, si se envía null retornará todas
las filas. Se pueden utilizar comodines ‘?’ y se envían los valores
en el cuarto parámetro.
 Un arreglo de String con los parámetros para la cláusula where en
caso de utilizar comodines en el tercer parámetro, de lo contrario
se puede enviar null.
 Un String con la cláusula group by, si se envía null no se hará
ningún agrupamiento.
 Un String con la cláusula having, si se envía null no se hará
ninguna validación de este tipo.
 Un String con la cláusula order by, si se envía null se devuelven
ordenados por defecto.

También podría gustarte