【发布时间】:2011-02-27 09:27:39
【问题描述】:
我有一些 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(context) (在我所有的数据库操作静态方法中使用)是
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();
}
}
【问题讨论】: