我已经在我的应用程序中实现了一个sqlite数据库,并且使用了Android Cursor。我已经写了一个数据库类,例如数据库名称以及表和列名称。在这里,我也有不同的方法,如下所示:Android - 使用数据库光标的高效方式
public Cursor getCorrectQuestions(int topic) {
SQLiteDatabase db = getReadableDatabase();
Cursor questionCursor = db.rawQuery(
"Select * FROM Result, Question WHERE Result.qid = Question._id AND correct = 1 AND topic = " + topic,
null);
questionCursor.moveToFirst();
return questionCursor;
}
public Cursor getExamQuestions() {
SQLiteDatabase db = getReadableDatabase();
Cursor questionCursor = db.rawQuery("Select * FROM Question WHERE topic = 7", null);
questionCursor.moveToFirst();
return questionCursor;
}
public Cursor getAnswerItems(String id) {
SQLiteDatabase db = getReadableDatabase();
Cursor answerCursor = db.rawQuery(
"Select * FROM Answer, Question WHERE Question._id = " + id + " AND Question._id = Answer.qid", null);
answerCursor.moveToFirst();
return answerCursor;
}
public Cursor getUserResults(String qid) {
SQLiteDatabase db = getReadableDatabase();
Cursor userResultsCursor = db.rawQuery("SELECT result FROM Result, Answer WHERE Result.qid = " + qid, null);
userResultsCursor.moveToFirst();
return userResultsCursor;
}
在具有3个光标(answerCursor,questionCursor,userResultCursor)我调用这些方法的QuizActivity。 我的问题是:是否有必要在每个方法中创建一个SQLiteDatabase对象,还是有可能在我的数据库构造函数中定义一次?我的活动中是否需要3个不同的游标?还是有更好的方法来处理这个问题?