0 calificaciones0% 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.
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 calificaciones0% 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.
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.