【发布时间】:2017-01-11 11:19:41
【问题描述】:
我已经在我的应用程序中实现了一个 sqlite 数据库,并且我正在使用 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 个不同的光标,还是有更好的方法来处理这个问题?
【问题讨论】:
标签: android android-sqlite android-cursor android-database