Está en la página 1de 16

Uso de SQLite con Android

Ing. Alex Jimnez


Alex_J2k@yahoo.es

Agenda
Introduccin a SQLite.
Creacin de una base de datos SQLite en Android.

Aplicacin ejemplo
Insercin, Consulta, Eliminacin, y Actualizacin.
Uso de IDEs para SQLite.

Ing. Alex Jimnez


Alex_J2k@yahoo.es

Introduccin a SQLite
SQLite es un motor de base de datos open source que no
necesita de un servidor y acepta varias sentencias del
estndar SQL-92.
Esta provisto de capacidades para consulta de datos
relacionales (select), manipulacin de datos
(insert,delete,update) y definicin de datos (create table,
create view, etc).
Precisa de poca configuracin y es utilizado en
dispositivos mviles.
Lugar de descarga y documentacin :
http://www.sqlite.org

Ing. Alex Jimnez


Alex_J2k@yahoo.es

Android y SQLite
Android provee de APIs que soportan nativamente
la base de datos SQLite en el paquete:
android.database.sqlite
Algunas de las clases y sus mtodos ms utilizadas:
Creacin y actualizacin de la base de datos:
SQLiteOpenHelper
public void onCreate(SQLiteDatabase db)
public void onUpgrade(SQLiteDatabase db, int verAnterior, int verNueva)
public SQLiteDatabase getReadableDataBase()
public SQLiteDatabase getWritableDatabase(), etc

Manipulacin/Mantenimiento de la base de datos:


SQLiteDataBase
query(), execSQL(), insert(), delete(), update()
beginTransaction(), endTransaction(), rawQuery(),etc..
Ing. Alex Jimnez
Alex_J2k@yahoo.es

Creacin de una base de datos SQLite en


Android
Ubicacin de la base de datos en el dispositivo/emulador:
/data/data/paquete.java.de.la.aplicacion/databases/nombre_base_datos

Esto es posible verlo haciendo uso del DDMS (Dalvik Debug


Monitor Server) en el tab File Exporer

Ing. Alex Jimnez


Alex_J2k@yahoo.es

Creacin de una base de datos SQLite en


Android
Ejemplo de base de datos:

Ing. Alex Jimnez


Alex_J2k@yahoo.es

Ejemplo de base de datos

Ing. Alex Jimnez


Alex_J2k@yahoo.es

Creacin de una base de datos SQLite en


Android
Cuando se cree una instancia a esta clase pueden suceder
cualquiera de las siguientes acciones:
Si la base de datos ya existe y su versin actual coincide con la
solicitada simplemente se realizar la conexin con ella.
Si la base de datos existe pero su versin actual es anterior a la
solicitada, se llamar automticamente al mtodo onUpgrade()
para convertir la base de datos a la nueva versin y se
conectar con la base de datos convertida.

Si la base de datos no existe, se llamar automticamente al


mtodo onCreate() para crearla y se conectar con la base de
datos creada.

Ing. Alex Jimnez


Alex_J2k@yahoo.es

Creacin de una base de datos SQLite en Android


import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
public class AndroidBaseDatos extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Abrimos la base de datos 'ProductosDB' en modo escritura
DatabaseHelper prodDB = new DatabaseHelper(this, "ProductosDB", null, 1);
SQLiteDatabase db = prodDB.getWritableDatabase();
//Si hemos abierto correctamente la base de datos
if(db != null)
{
//Insertamos 5 productos de ejemplo
for(int i=1; i<=5; i++)
{
//Generamos los datos
double precio=5*i;
String descripcion = "Descripcion" + i;
//Insertamos los datos en la tabla Productos
db.execSQL("INSERT INTO Productos (descripcion,precio) " +
"VALUES (" + descripcion + "," + precio +")");
}
//Cerramos la base de datos
db.close();
}
}
}

Creacin de una base de datos SQLite en Android


Para Insertar/Actualizar/Eliminar
es posible utilizar el mtodo execSQL de la clase SQLiteDatabase de
la siguiente forma:
//Insertar un registro
db.execSQL("INSERT INTO Productos(descripcion,precio) VALUES
(Impresor Laser,120.50) ");
//Eliminar un registro
db.execSQL("DELETE FROM Productos WHERE _id=3 ");
//Actualizar un registro
db.execSQL("UPDATE Productos SET precio=precio*1.1 WHERE
_id=1");

Ing. Alex Jimnez


Alex_J2k@yahoo.es

10

Creacin de una base de datos SQLite en Android


Para consultar
es posible utilizar el mtodo rawQuery de la clase SQLiteDatabase
de la siguiente forma:
//consultar un registro
Cursor c = db.rawQuery(" SELECT descripcion,precio FROM
Productos WHERE _id=1 ");
Un objeto Cursor contiene los registros resultantes producto de la
consulta ejecutada con el mtodo rawQuery()
Es posible manipular un objeto Cursor mediante una serie de
mtodos como por ejemplo:
moveToFirst(): mueve el puntero del cursor al primer registro
devuelto.
moveToNext(): mueve el puntero del cursor al siguiente registro
devuelto.
11

Creacin de una base de datos SQLite en Android


Los mtodos moveToFirst() y moveToNext() devuelven TRUE en caso
de haber realizado el movimiento correspondiente del puntero sin
errores, es decir, siempre que exista un primer registro o un registro
siguiente, respectivamente.
Recorrido del objeto Cursor del caso anterior:
//Nos aseguramos de que existe al menos un registro
if (c.moveToFirst()) {
//Recorremos el cursor hasta que no haya ms registros
do {
String descripcion= c.getString(0);
double precio = c.getDouble(1);
} while(c.moveToNext());
}
12

Creacin de una base de datos SQLite en Android


Otra alternativa disponible en la API de Android es utilizar los
mtodos insert(), update() y delete() proporcionados tambin con la
clase SQLiteDatabase.
Estos mtodos permiten realizar las tareas de insercin,
actualizacin y eliminacin de registros de una forma parametrizada
, separando tablas, valores y condiciones en parmetros
independientes de estos mtodos.

De igual forma se cuenta con el mtodo query() que puede recibir


varios parmetros como group by,having, order by; para retornar un
objeto Cursor y poder recorrerlo como en el ejemplo anterior.

13

Aplicacin ejemplo

Ing. Alex Jimnez


Alex_J2k@yahoo.es

14

Uso de IDEs para SQLite


SQLite Studio: http://sqlitemanager.codeplex.com

Ing. Alex Jimnez


Alex_J2k@yahoo.es

15

Uso de IDEs para SQLite


SQLite Administrator: http://sqliteadmin.orbmu2k.de/

Ing. Alex Jimnez


Alex_J2k@yahoo.es

16

También podría gustarte