Archivos de etiquetas: SQLite

SQLite, Android y Phonegap, adios Localstorage

Conforme la aplicación fue avanzando nos vimos obligados a cambiar el sistema de almacenamiento de datos para hacerlo un poco más robusto. Para ello optamos por implementar SQLite en la aplicación.

SQLite viene por defecto en la API de Android y no es necesario incluir ninguna librería extra. Como introducción está bien, pero vamos a pasar a lo interesante.

Para crear la Base de Datos que va a usar la aplicación solo necesitamos instanciar una clase que extienda de SQLiteOpenHelper. Cuando se haga esa llamada al constructor de la clase, el método super, comprobará internamente si existe la base de datos, en caso contrario la creará inmediatamente y ejecutará el método onCreate donde tendremos las queries que queremos ejecutar al iniciar. Este método sólo se ejecutará si la base de datos no existía. En cualquier otra instanciación de la clase DataBase no se ejecutará.

private String CREATE_USER_SQL = "CREATE TABLE accounts (_id INTEGER PRIMARY KEY AUTOINCREMENT, nif VARCHAR(10), name TEXT, bolsa TEXT)";

private String CREATE_POSITIONS_SQL = "CREATE TABLE positions (_id INTEGER PRIMARY KEY AUTOINCREMENT, general INTEGER, sevilla INTEGER, nif VARCHAR(10), fecha DATETIME DEFAULT CURRENT_TIMESTAMP)";

public class DataBase extends SQLiteOpenHelper{

     public DataBase(Context context) {
         super(context,InfobolsaConstants.DATABASE_NAME, null, InfobolsaConstants.DATABASE_VERSION);
     }

     @Override
     public void onCreate(SQLiteDatabase db) {
         db.execSQL(CREATE_USER_SQL);
         db.execSQL(CREATE_POSITIONS_SQL);
     }

     @Override
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
         if(oldVersion == 1){
	     db.execSQL(InfobolsaConstants.ALTERTABLE_POSITIONS_SQL);
	     db.execSQL(InfobolsaConstants.CREATE_POSITIONS_SQL)
        }
        if(newVersion == InfobolsaConstants.DATABASE_VERSION){
             db.execSQL(InfobolsaConstants.ALTERTABLE_BOLSAS_SQL);
             db.execSQL(InfobolsaConstants.CREATE_BOLSAS_SQL);
             db.execSQL(InfobolsaConstants.ALTERTABLE_BOLSAS_DATA_SQL);
        }
     }
}

Posteriormente, si la versión de la base datos es superior a la que había antes, se ejecutará el método onUpgrade que o bien podemos dejar vacío o bien podemos ejecutar una SQL que nos permita hacer una migración o actualización de datos. Para ello, podemos usar los parámetros oldVersion y newVersion para saber con cual versión queremos que se ejecute dicha actualización.

Leer más →

A %d blogueros les gusta esto: