ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Tutorial de Bases de Datos SQLite еn Aplicaciones Android

jaormenopTutorial12 de Julio de 2015

3.071 Palabras (13 Páginas)549 Visitas

Página 1 de 13

UNIVERSIDAD CESAR VALLEJO

ESCUELA ACADEMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

ESCUELA DE COMPUTACION

CICLO 2015-I GUIA DE LABORATORIO Nº 07 - 1

Nombre de la práctica: Tutorial De Bases De Datos SQLite En Aplicaciones Android

Lugar de ejecución: LAB 805B

Tiempo estimado: 2 horas

Materia:

Docente: Ing. José Luis Huamán Villar

I. Objetivos

1. Tutorial De Bases De Datos SQLite En Aplicaciones Android

II. Procedimiento

Tutorial De Bases De Datos SQLite En Aplicaciones Android

En este tutorial descubriremos como usar bases de datos en SQLite para no perder la información de nuestras Aplicaciones Android. A medida que vayamos avanzando veremos la utilidad de clases como SQLiteOpenHelper, SQLiteDatabase, Cursor, CursorAdapter y de Herramientas como sqlite3 y SQLite Browser.

¿Qué es SQLite?

Es un ligero motor de bases de datos de código abierto, que se caracteriza por mantener el almacenamiento de información persistente de forma sencilla. A diferencia de otros SGBD como MySQL, SQL Server y Oracle DB, SQLite tiene las siguientes ventajas:

• No requiere el soporte de un servidor: SQLite no ejecuta un proceso para administrar la información, si no que implementa un conjunto de librerías encargadas de la gestión.

• No necesita configuración: Libera al programador de todo tipo de configuraciones de puertos, tamaños, ubicaciones, etc.

• Usa un archivo para el esquema: Crea un archivo para el esquema completo de una base de datos, lo que permite ahorrarse preocupaciones de seguridad, ya que los datos de las aplicaciones Android no pueden ser accedidos por contextos externos.

• Es de Código Abierto: Esta disponible al dominio público de los desarrolladores al igual que sus archivos de compilación e instrucciones de escalabilidad.

Es por eso que SQLite es una tecnología cómoda para los dispositivos móviles. Su simplicidad, rapidez y usabilididad permiten un desarrollo muy amigable.

SQLite tiene ciertas limitaciones en algunas operaciones. Por ejemplo, no se puede implementar las clausulas FULL OUTER JOIN y RIGHT OUTER JOIN. Aunque en la mayoría de casos esto no afectará, siempre habrá otras alternativas como JavaDB o MongoDB.

Para comenzar a probar nuestras bases de datos, quisiera explicarte un poco más sobre el ejemplo práctico que vamos a desarrollar. Se trata de una aplicación llamada “Quotilius”. Cuyo objetivo es guardar una lista de frases célebres.

Debemos almacenar el cuerpo de la frase y el autor que la trajo al mundo. El siguiente sería un bosquejo rápido de cómo se vería la tabla de frases:

_id body author

1 “El ignorante afirma, el sabio duda y reflexiona” Aristóteles

2 “Hay derrotas que tienen mas dignidad que la victoria” Jorge Luis Borges

3 “Si buscas resultados distintos, no hagas siempre lo mismo” Albert Einstein

4 “Donde mora la libertad, allí está mi patria” Benjamin Franklin

5 “Ojo por ojo y todo el mundo acabará ciego” Mahatma Gandhi

La idea es proporcionarle al usuario la posibilidad de añadir nuevas frases desde la Action Bar.

Ejemplo de aplicación Android con SQLite

Quotilius se compone de dos actividades para su funcionamiento. La primera es Main. Esta actividad está basada en una lista, donde ubicaremos las frases del usuario. No definiremos su archivo de diseño debido a que será una subclase de ListActivity. Así que usaremos el layout del sistema android.R.layout.list_content para inflar la actividad.

La segunda actividad se llama Form , la cual cumple la función de formulario para ingresar el cuerpo de la frase y el autor mediante dos Edit texts. Se ejecutará cuando presionamos el Action Button “Añadir“. Observemos su previsualización:

La comunicación entre ambas actividades se realiza a través de un Intent explicito. Este nos permite obtener los datos que el usuario ingresó en Form para poder usarlos en Main e ingresarlos en la base de datos y al mismo tiempo actualizar nuestro ListView.

Lo primero que harás será enviar un Intent para ejecutar la actividad Form a través de un canal de comunicación:

//Código de envío

public final static int ADD_REQUEST_CODE = 1;

...

//Iniciando la actividad Form

Intent intent = new Intent(this, Form.class);

//Inicio de la actividad esperando un resultado

startActivityForResult(intent, ADD_REQUEST_CODE);

Una vez el usuario este en la actividad y haya presionado el botón de “Guardar“, devuelves los textos en los textviews por el mismo canal hacia Main:

//Obtener los datos de los campos

EditText quoteField = (EditText) findViewById(R.id.quoteField);

EditText authorField = (EditText) findViewById(R.id.authorField);

//Nuevo Intent con Extras

Intent backData = new Intent();

backData.putExtra("body", quoteField.getText().toString());

backData.putExtra("author", authorField.getText().toString());

//Enviar la información

setResult(RESULT_OK, backData);

Luego recibes los datos con el método onActivityResult() y realizas las operaciones necesarias para guardar los datos en la base de datos:

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == ADD_REQUEST_CODE) {

if (resultCode == RESULT_OK) {

//Insertar registro en la base de datos

}

}

}

Hasta aquí hicimos un bosquejo rápido de la comunicación entre ambas actividades. Si te perdiste y aún no sabes como funcionan los Intents, entonces visita nuestro tutorial sobre Intents en Android para esclarecer mas este proceso de transmisión.

Crear una Base de Datos en SQLite

Android SDK nos provee una serie de clases para administrar nuestro archivo de base de datos en SQLite. Normalmente cuando conectamos otro gestor de bases de datos tenemos que validar los datos del equipo, el usuario y el esquema, pero con SQLite no se requiere nada de eso, ya que podemos trabajar directamente sobre la base de datos.

La clase que nos permitirá comunicar nuestra aplicación con la base de datos se llama SQLiteOpenHelper. Se trata de una clase abstracta que nos provee los mecanismos básicos para la relación entre la aplicación Android y la información.

Solo tienes que derivar de ella una subclase que se ajuste a tus necesidades y tendrás un puente funcional hacia el archivo de datos.

Así que implementaremos una nueva clase que extienda de SQLiteOpenHelper y la llamaremos QuotesReaderDbHelper.

Veamos:

public class QuotesReaderDbHelper extends SQLiteOpenHelper {

public QuotesReaderDbHelper(Context context){

super(context,

DATABASE_NAME,//String name

null,//factory

DATABASE_VERSION//int version

);

}

@Override

public void onCreate(SQLiteDatabase db) {

//Crear la base de datos

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

//Actualizar la base de datos

}

}

A continuación la explicación del código:

El constructor

Recibe el contexto con el cual se relacionará el helper. Luego invoca a super , donde se envía el contexto y 3 parámetros adicionales:

• name: String que representa el nombre del archivo con extensión .db donde se almacenará la base de datos, que a su vez corresponde al nombre de la base de datos.

• factory: Asignamos null, por ahora no es necesario comprender el funcionamiento de este parámetro.

• version: Entero que representa la versión de la base de datos. Su valor inicial por defecto es 1. Si en algún momento la versión es mayor se llama al método onUpgrade() para actualizar la base de datos a la nueva versión. Si es menor, se llama a downUpgrade() para volver a una versión previa.

onCreate()

Este método es llamado automáticamente cuando creamos una instancia de la clase SQLiteOpenHelper. En su interior establecemos la creación de las tablas y registros. Recibe como parámetro una referencia de la clase SQLiteDataBase, la cual representa el esquema completo de la base de datos.

Por defecto el archivo de la base de datos será almacenado en la dirección /data/data/<paquete>/databases/<nombre-de-la-bd>.db de nuestro dispositivo móvil.

onUpgrade()

Es ejecutado si se identificó que el usuario tiene una versión antigua de la base de datos. En su interior estableceremos instrucciones para modificar el esquema de la base de datos, como por ejemplo eliminar todo el esquema y recrearlo, agregar una nueva tabla, añadir una nueva columna, etc. Recibe tres parámetros:

• db: Es la instancia de SQLiteDataBase que representa la base de datos.

• oldVersion: Se trata de un entero que indica la “Version antigua” de la base de datos.

• newVersion: Entero que se refiere a la “Version Nueva” de la base de datos.

Crear un Script de la Base de Datos

La forma en que una base de datos esta estructurada(cantidad de tablas, registros,

...

Descargar como (para miembros actualizados) txt (18 Kb)
Leer 12 páginas más »
Disponible sólo en Clubensayos.com