Blog
Base de datos SQLite en Android
La base de datos SQLite en Android tiene un rol fundamental ya que nos permite guardar información valiosa en los dispositivos. Tener una base de datos en un dispositivo nos puede ahorrar tener que acceder a un web services remoto a cada rato, y así no depender siempre de una conexión a internet. Por ejemplo si desde una aplicación se quisiera enviar un mensaje a otro dispositivo y no hubiera internet, una buena opción seria guardar ese mensaje en la base de datos para enviarlo una vez conectado a internet.
En este artículo veremos cómo usar una base de datos SQLite en Android con un ejemplo, utilizando el lenguaje de programación Java.
Creando una base de datos SQLite en Android
La clase encargada de manipular la base de datos debe heredar de SQLiteOpenHelper. El código quedaría de la siguiente manera:
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class SQLiteHelper extends SQLiteOpenHelper { // Sentencia SQL para crear la tabla de Usuarios private String sqlCreateTable1; private String sqlCreateTable2; public SQLiteHelper(Context contexto, String name, CursorFactory factory, int version) { super(contexto, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { // Se ejecuta la sentencia SQL de creación de la tabla createQuery(); db.execSQL(sqlCreateTable1); db.execSQL(sqlCreateTable2); } @Override public void onUpgrade(SQLiteDatabase db, int versionAnterior, int versionNueva) { // Se elimina la versión anterior de la tabla db.execSQL("DROP TABLE IF EXISTS table1"); db.execSQL("DROP TABLE IF EXISTS table2"); // Se crea la nueva versión de la tabla db.execSQL(sqlCreateTable1); db.execSQL(sqlCreateTable2); } public void createQuery() { sqlCreateTable1 = "CREATE TABLE table1(column1 INTEGER, column2 TEXT)"; sqlCreateTable2 = "CREATE TABLE table2(column1 INTEGER, column2 TEXT)"; } }
La clase SQLiteHelper implementa los métodos:
* createQuery: Encargado de crear las consultas para crear las tablas.
* onUpgrade: Encargado de resetear la base de datos entera.
* onCreate: Encargado de crear las tablas.
Una vez que ya tenemos nuestra base de datos SQLite en Android creada podemos insertar registros de la siguiente manera:
SQLiteDatabase db = new SQLiteHelper(getApplicationContext(), "DatabaseName", null, 1).getWritableDatabase(); db.execSQL("INSERT INTO table1 (column1) VALUES (1)");
Luego si queremos obtener todos los registros insertados tenemos que hacer:
Cursor c = db.rawQuery("SELECT * FROM table1 WHERE column1 = 1", null); while(c.moveToNext()){ Toast.makeText(getApplicationContext(), c.getInt(c.getColumnIndex("column1")) + "", Toast.LENGTH_LONG).show(); }
Todos esto es lo básico que se tiene que tener en cuanta a la hora de usar una base de datos SQLite en Android. Espero que se haya entendido y les sea de gran utilidad.