Vous êtes sur la page 1sur 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
8

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

Vous aimerez peut-être aussi