У меня есть несколько проектов Android , и большинство из них связаны с базами данных SQLite .Меня интересует, является ли хорошей практикой программирования (или плохим привычкой) использование некоторого статического класса, такого как " DatabaseHelper.class ", в котором у меня есть все статические методы, связанные с манипулированием базой данных.Например,
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;
}
, где dbInit (контекст) (который используется во всех моих статических методах для манипулирования базой данных) равно
private static void dbInit(Context context) {
if (db == null) {
db = context.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);
}
}
Затем, когда мне что-то нужно, я могу легко вызвать эти методы, например, с помощью
int id = DatabaseHelper.getId(this, "Abc");
РЕДАКТИРОВАТЬ: Нужно ли использовать dbClose для каждого соединения или оставить его открытым?активность и близкая активность?Так я должен изменить этот верхний код на что-то вроде этого?
...
dbClose();
return id;
}
private static void dbClose() {
if (db != null) {
db.close();
}
}