Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Android DB por Cesar Cespedes

5,682 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Android DB por Cesar Cespedes

  1. 1. Base de Datos en Android
  2. 2. <ul><li>Métodos de Almacenamiento de Datos </li></ul><ul><li>SQLite DataBase </li></ul><ul><li>Content Provider </li></ul>Índice
  3. 3. <ul><li>Shared Preferences </li></ul><ul><ul><li>Datos son almacenados en archivos XML </li></ul></ul><ul><li>Flat Files </li></ul><ul><ul><li>InputFileStream </li></ul></ul><ul><ul><li>OutputFileStream </li></ul></ul><ul><li>SQLite DataBase </li></ul>Métodos de Almacenamiento de Datos
  4. 4. <ul><li>Base de Datos relacional para sistemas embebidos. </li></ul><ul><li>Ocupa únicamente unos 225KB. </li></ul><ul><li>Implementa la mayor parte del estándar SQL-92, pero con restricciones. </li></ul><ul><li>Soporte para ALTER_TABLE limitado. </li></ul><ul><li>Las columnas no tienen tipos. </li></ul><ul><li>Existen diferentes herramientas, como sqlite3, disponible desde sqlite.org </li></ul><ul><li>Existen un plugin de Firefox para visualizar bases de datos SQLite (recomendado) </li></ul>SQLite DataBase
  5. 5. <ul><li>Se utiliza internamente en Firefox y Thunderbird. </li></ul><ul><li>Lo utilizan la mayoría de las plataformas móviles (iOS, Symbian, Android, BlackBerry OS, webOS). </li></ul><ul><li>No existen las claves ajenas o foráneas, y en el caso de necesitarlas, debemos forzarlas “a mano”. </li></ul><ul><li>Es relativamente fácil conectar una base de datos a una lista. </li></ul><ul><li>La base de datos está protegida dentro de la memoria interna del dispositivo. </li></ul><ul><li>Mientras trabajamos con el emulador (donde tenemos acceso root), podemos extraer (con DDMS) el archivo de la base de datos y visualizarlo. </li></ul>SQLite DataBase
  6. 6. <ul><li>SQLiteOpenHelper </li></ul><ul><ul><li>Nos permite crear, actualizar, y conectar con una base de datos SQLite </li></ul></ul><ul><ul><li>Es solo un constructor. </li></ul></ul><ul><ul><li>Métodos: </li></ul></ul><ul><ul><ul><li>onCreate() </li></ul></ul></ul><ul><ul><ul><li>onUpgrade() </li></ul></ul></ul><ul><li>Referencia a la Base de Datos </li></ul><ul><ul><li>Objeto de tipo SQLiteDatabase. </li></ul></ul><ul><ul><li>Actualizar, modificar, eliminar datos. </li></ul></ul><ul><ul><li>Métodos: </li></ul></ul><ul><ul><ul><li>getReadableDatabase() </li></ul></ul></ul><ul><ul><ul><li>getWritableDatabase() </li></ul></ul></ul>SQLite DataBase
  7. 7. <ul><li>Insertar, actualizar y eliminar registros </li></ul><ul><ul><li>Método execSQL() </li></ul></ul><ul><ul><ul><li>Permite ejecutar cualquier sentencia SQL sobre la base de datos. </li></ul></ul></ul><ul><ul><ul><li>No devuelve resultados. </li></ul></ul></ul><ul><ul><li>Métodos insert(), update() y delete() </li></ul></ul><ul><ul><ul><li>Uso de parámetros. </li></ul></ul></ul><ul><ul><ul><li>Separa tablas, valores y condiciones en parámetros independientes. </li></ul></ul></ul>SQLite DataBase
  8. 8. <ul><li>Selección y recuperación de datos </li></ul><ul><ul><li>Método rawQuery(). </li></ul></ul><ul><ul><ul><li>Único parámetro, comando SQL. </li></ul></ul></ul><ul><ul><ul><li>Resultado de la consulta en forma de Cursor. </li></ul></ul></ul><ul><ul><li>Método query(). </li></ul></ul><ul><ul><ul><li>Varios parámetros: </li></ul></ul></ul><ul><ul><ul><ul><li>Nombre de la tabla. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Array campos, cláusula WHERE. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Array con argumentos variables incluidos en el WHERE (si los hay, null caso contrario). </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Cláusula GROUP BY si existe. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Cláusula HAVING si existe. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Cláusula ORDER BY si existe. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Parámetro opcional con el número de registros a obtener. </li></ul></ul></ul></ul><ul><ul><ul><li>Resultado de la consulta en forma de Cursor. </li></ul></ul></ul>SQLite DataBase
  9. 9. <ul><li>Recorrer y manipular un cursor </li></ul><ul><ul><li>Métodos: </li></ul></ul><ul><ul><ul><li>moveToFirst(): mueve el puntero del cursor al primer registro devuelto. </li></ul></ul></ul><ul><ul><ul><li>moveToNext(): mueve el puntero del cursor al siguiente registro devuelto. </li></ul></ul></ul>SQLite DataBase
  10. 10. <ul><li>¿Dónde esta mi Base de Datos? </li></ul><ul><ul><li>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 </li></ul></ul><ul><ul><li>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-windowsplatform-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“. </li></ul></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>“ SELECT * FROM tabla </li></ul></ul>SQLite DataBase
  11. 11. <ul><li>Mecanismo bastante sencillo para almacenar y acceder a información de manera compartida. </li></ul><ul><li>Superclase para el manejo y almacenamiento de datos. </li></ul><ul><li>Es la manera de compartir datos entre procesos y aplicaciones, ya que los datos de cada aplicación se almacenan por separado. </li></ul><ul><li>Implementa un conjunto estándar de métodos para exponer sus datos de aplicación para ser utilizados, consumidos o creados por otras aplicaciones. </li></ul><ul><li>Normalmente, se usa con una base de datos (SQLite), puede usarse con otro medio de compartición de variables, un fichero, ó simplemente un ArrayList. </li></ul>Content Provider
  12. 12. <ul><li>http://developer.android.com </li></ul><ul><li>http://www.sgoliver.net/blog/?p=1611 </li></ul><ul><li>Professional Android™ 2 Application Development - Reto Meier </li></ul><ul><li>The Android Developer’s Cookbook Building Applications with the Android SDK - James Steele </li></ul>Referencias
  13. 13. ¡¡¡ GRACIAS !!! César Céspedes Loayza

×