SQLiteOpenHelper静态方法的最佳实践

时间:2011-06-22 13:42:38

标签: android

我有一个扩展SQLiteOpenHelper的类来管理我的数据库。我觉得编写这样的代码来使用我的数据库是相当繁琐的(DBHelperSQLiteOpenHelper对象):

DBHelper dbHelper = new DBHelper(context);
FeedResponse feedResponse = dbHelper.getFeedResponse(...);
dbHelper.close();

用静态方法替换上面的代码并像这样使用它有什么问题吗?在实现我的数据库访问时,我可能遇到什么问题?

FeedResponse feedResponse = DBHelper.getFeedResponse(context, ...);

public static FeedResponse getFeedResponse(Context context, ...) {
    DBHelper dbHelper = new DBHelper(context);
    FeedResponse feedResponse = dbHelper.getFeedResponse(...);
    dbHelper.close();
    return feedResponse;
}

public FeedResponse getFeedResponse(...) {
    //returns data from database
}

这样做确实减少了总是创建(输入)DBHelper的新实例,并且也毫不费力地关闭它。这一切都在幕后处理。

2 个答案:

答案 0 :(得分:0)

您的解决方案应该可行,但不是最佳的,因为您将为每个数据库查询创建一个新的DBHelper对象。而对象的创建是一项昂贵的操作。如果重用DBHelper对象会更好。

答案 1 :(得分:0)

另外,您可能在使用多个线程的DBHelper时遇到麻烦。

相关问题