Tutorial de Bases de Datos SQLite еn Aplicaciones Android
Enviado por jaormenop • 12 de Julio de 2015 • Tutorial • 3.071 Palabras (13 Páginas) • 473 Visitas
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.
...