Я реализовал базу данных 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;
}
В QuizActivity, который имеет 3 курсоров (answerCursor, questionCursor, userResultCursor) Я вызывать эти методы. Мой вопрос: необходимо ли создать объект SQLiteDatabase в каждом методе или можно ли определить его один раз в моем конструкторе базы данных? И мне нужно 3 разных курсора в моей деятельности или есть лучший способ справиться с этим?