You are on page 1of 13

Base de Datos en Android

Índice

• Métodos de Almacenamiento de Datos

• SQLite DataBase

• Content Provider
Métodos de Almacenamiento de Datos

• Shared Preferences
– Datos son almacenados en archivos XML

• Flat Files
– InputFileStream
– OutputFileStream

• SQLite DataBase
SQLite DataBase

• Base de Datos relacional para sistemas embebidos.


• Ocupa únicamente unos 225KB.
• Implementa la mayor parte del estándar SQL-92,
pero con restricciones.
• Soporte para ALTER_TABLE limitado.
• Las columnas no tienen tipos.
• Existen diferentes herramientas, como sqlite3,
disponible desde sqlite.org
• Existen un plugin de Firefox para visualizar bases de
datos SQLite (recomendado)
SQLite DataBase

• Se utiliza internamente en Firefox y Thunderbird.


• Lo utilizan la mayoría de las plataformas móviles (iOS,
Symbian, Android, BlackBerry OS, webOS).

• No existen las claves ajenas o foráneas, y en el caso


de necesitarlas, debemos forzarlas “a mano”.
• Es relativamente fácil conectar una base de datos a
una lista.
• La base de datos está protegida dentro de la memoria
interna del dispositivo.
• Mientras trabajamos con el emulador (donde tenemos
acceso root), podemos extraer (con DDMS) el archivo
de la base de datos y visualizarlo.
SQLite DataBase

• SQLiteOpenHelper
– Nos permite crear, actualizar, y conectar con una base de datos SQLite
– Es solo un constructor.
– Métodos:
• onCreate()
• onUpgrade()

• Referencia a la Base de Datos


– Objeto de tipo SQLiteDatabase.
– Actualizar, modificar, eliminar datos.
– Métodos:
• getReadableDatabase()
• getWritableDatabase()
SQLite DataBase

• Insertar, actualizar y eliminar registros


– Método execSQL()
• Permite ejecutar cualquier sentencia SQL sobre la base de datos.
• No devuelve resultados.

– Métodos insert(), update() y delete()


• Uso de parámetros.
• Separa tablas, valores y condiciones en parámetros independientes.
SQLite DataBase

• Selección y recuperación de datos


– Método rawQuery().
• Único parámetro, comando SQL.
• Resultado de la consulta en forma de Cursor.
– Método query().
• Varios parámetros:
– Nombre de la tabla.
– Array campos, cláusula WHERE.
– Array con argumentos variables incluidos en el WHERE (si los hay, null caso contrario).
– Cláusula GROUP BY si existe.
– Cláusula HAVING si existe.
– Cláusula ORDER BY si existe.
– Parámetro opcional con el número de registros a obtener.
• Resultado de la consulta en forma de Cursor.
SQLite DataBase

• Recorrer y manipular un cursor


– Métodos:
• moveToFirst(): mueve el puntero del cursor al primer registro devuelto.
• moveToNext(): mueve el puntero del cursor al siguiente registro devuelto.
SQLite DataBase

• ¿Dónde esta mi Base de Datos?


– Una vez ejecutada por primera vez desde Eclipse la aplicación de ejemplo sobre el
emulador de Android (y por supuesto antes de cerrarlo) podemos ir a la perspectiva
“DDMS” (Dalvik Debug Monitor Server) de Eclipse y en la solapa “File Explorer”
podremos acceder al sistema de archivos del emulador, donde podremos buscar la ruta
indicada de la base de datos
– Abrir una consola de MS-DOS y utilizar la utilidad adb.exe (Android Debug Bridge)
situada en la carpeta platform-tools del SDK de Android (en mi caso: c:\android-sdk-
windows\platform-tools\). En primer lugar consultaremos los identificadores de todos los
emuladores en ejecución mediante el comando “adb devices“. Esto nos debe devolver
una única instancia si sólo tenemos un emulador abierto “emulator-5554“.

– Tras conocer el identificador de nuestro emulador, vamos a acceder a su shell


mediante el comando “adb -s identificador-del-emulador shell“. Una vez conectados, ya
podemos acceder a nuestra base de datos utilizando el comando sqlite3 pasándole la
ruta del fichero, para nuestro ejemplo “sqlite3 /data/data/pe.android/databases/DB“.
Debe aparecernos el prompt de SQLite “sqlite>“, lo que nos indicará que ya podemos
escribir las consultas SQL necesarias sobre nuestra base de datos.
– “SELECT * FROM tabla
Content Provider

• Mecanismo bastante sencillo para almacenar y acceder


a información de manera compartida.
• Superclase para el manejo y almacenamiento de datos.
• Es la manera de compartir datos entre procesos y
aplicaciones, ya que los datos de cada aplicación se
almacenan por separado.
• Implementa un conjunto estándar de métodos para
exponer sus datos de aplicación para ser utilizados,
consumidos o creados por otras aplicaciones.
• Normalmente, se usa con una base de datos (SQLite),
puede usarse con otro medio de compartición de
variables, un fichero, ó simplemente un ArrayList.
Referencias

• http://developer.android.com
• http://www.sgoliver.net/blog/?p=1611
• Professional Android™ 2 Application Development -
Reto Meier
• The Android Developer’s Cookbook Building
Applications with the Android SDK - James Steele
¡¡¡ GRACIAS !!!

César Céspedes Loayza

You might also like