package com.tuit.ar.databases; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public abstract class Database extends SQLiteOpenHelper { public Database(Context context, String databaseName, int databaseVersion) { super(context, databaseName, null, databaseVersion); Model.db = this; } public void onCreate(SQLiteDatabase db, String[] sql) { if (sql == null) return; db.beginTransaction(); try { execMultipleSQL(db, sql); db.setTransactionSuccessful(); } catch (SQLException e) { Log.e("Error creating tables and debug data", e.toString()); throw e; } finally { db.endTransaction(); } } public void onUpgrade(SQLiteDatabase db, String[] sql) { if (sql == null) return; db.beginTransaction(); try { execMultipleSQL(db, sql); db.setTransactionSuccessful(); } catch (SQLException e) { Log.e("Error updating tables and debug data", e.toString()); throw e; } finally { db.endTransaction(); } } /** * Execute all of the SQL statements in the String[] array * @param db The database on which to execute the statements * @param sql An array of SQL statements to execute */ private void execMultipleSQL(SQLiteDatabase db, String[] sql){ for( String s : sql ) if (s.trim().length()>0) db.execSQL(s); } public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) { return getReadableDatabase().query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit); } public Cursor rawQuery(String sql, String[] selectionArgs) { return getReadableDatabase().rawQuery(sql, selectionArgs); } public long replace(String table, String nullColumnHack, ContentValues values) { return getWritableDatabase().replace(table, nullColumnHack, values); } public long insert(String table, String nullColumnHack, ContentValues values) { return getWritableDatabase().insert(table, nullColumnHack, values); } public int update(String table, ContentValues values, String whereClause, String[] whereArgs) { return getWritableDatabase().update(table, values, whereClause, whereArgs); } public int delete(String table, String whereClause, String[] whereArgs) { return getWritableDatabase().delete(table, whereClause, whereArgs); } }