Tengo algunos proyectos Android y la mayoría de ellos están conectados con bases de datos SQLite. Me interesa que sea una buena práctica de programación (o un habbit malo) usar alguna clase estática como "DatabaseHelper.class" en la que tendría todo el método estático relacionado para la manipulación de la base de datos. Por ejemplo¿Está bien utilizar la clase estática de "ayudante de base de datos"?
public static int getId(Context context, String name) {
dbInit(context);
Cursor result = db.rawQuery("SELECT some_id FROM table WHERE some_name = '" + name + "'", null);
result.moveToFirst();
int id = result.getInt(result.getColumnIndex("some_id"));
result.close();
return id;
}
donde dbinit (contexto)(que se utiliza en todos mis métodos estáticos para manipluation base de datos) es
private static void dbInit(Context context) {
if (db == null) {
db = context.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);
}
}
Entonces cuando necesito algo que pueda llamar fácilmente los método (s) con, por ejemplo
int id = DatabaseHelper.getId(this, "Abc");
EDIT: ¿Tengo que usar dbClose en cada conexión o dejarlo abierto por actividad y cerrar por actividad? Entonces, ¿tengo que cambiar ese código superior a algo como esto?
...
dbClose();
return id;
}
private static void dbClose() {
if (db != null) {
db.close();
}
}
un grupo es excesivo para una simple conexión sqlite, ya que solo cuesta 0,2ms abrir, así que haga esto pero omita el grupo –
@Dan, por lo tanto, el "grupo inicial puede ser muy simple" ... –