我有一个扩展SQLiteOpenHelper
的类来管理我的数据库。我觉得编写这样的代码来使用我的数据库是相当繁琐的(DBHelper
是SQLiteOpenHelper
对象):
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
的新实例,并且也毫不费力地关闭它。这一切都在幕后处理。
答案 0 :(得分:0)
您的解决方案应该可行,但不是最佳的,因为您将为每个数据库查询创建一个新的DBHelper对象。而对象的创建是一项昂贵的操作。如果重用DBHelper对象会更好。
答案 1 :(得分:0)
另外,您可能在使用多个线程的DBHelper
时遇到麻烦。