gpt4 book ai didi

java - 可以使用静态 "database helper"类吗?

转载 作者:IT王子 更新时间:2023-10-29 06:27:41 34 4
gpt4 key购买 nike

我有一些 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");

编辑:我是否必须在每个连接上使用 dbClos​​e 或保持打开每个 Activity 并关闭每个 Activity ?那么我是否已将上面的代码更改为类似这样的内容?

    ...
dbClose();

return id;
}

private static void dbClose() {
if (db != null) {
db.close();
}
}

最佳答案

我建议您养成每次需要时都建立一个数据库连接,并在用完后释放它的习惯。这种设施的通常名称是“数据库连接池”。

这会将连接逻辑从您的实际代码中移出并放入池中,并允许您在以后需要时做很多事情。一件简单的事情可能是池记录了连接对象的使用时间,因此您可以获得有关数据库使用情况的信息。

如果您只需要一个连接,您的初始池可以非常简单。

关于java - 可以使用静态 "database helper"类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132401/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com