android db por cesar cespedes

13

Click here to load reader

Upload: lima-gtug

Post on 13-Jun-2015

5.284 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Android DB por Cesar Cespedes

Base de Datos en Android

Page 2: Android DB por Cesar Cespedes

Índice

• Métodos de Almacenamiento de Datos

• SQLite DataBase

• Content Provider

Page 3: Android DB por Cesar Cespedes

Métodos de Almacenamiento de Datos

• Shared Preferences– Datos son almacenados en archivos XML

• Flat Files– InputFileStream– OutputFileStream

• SQLite DataBase

Page 4: Android DB por Cesar Cespedes

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)

Page 5: Android DB por Cesar Cespedes

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.

Page 6: Android DB por Cesar Cespedes

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()

Page 7: Android DB por Cesar Cespedes

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.

Page 8: Android DB por Cesar Cespedes

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.

Page 9: Android DB por Cesar Cespedes

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.

Page 10: Android DB por Cesar Cespedes

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

Page 11: Android DB por Cesar Cespedes

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.

Page 12: Android DB por Cesar Cespedes

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

Page 13: Android DB por Cesar Cespedes

¡¡¡ GRACIAS !!!

César Céspedes Loayza