Sqlite - Cursor Verständnisfrage

deka

deka

Dauergast
351
Ich habe eine Sqlite-Datenbank in meine Quiz-App eingebunden und verwende hier den Android Cursor. Dabei habe ich eine Datenbank-Klasse geschrieben in der ich u.a. die Tabellen- und Spaltennamen definiere, den Datenbanknamen etc..
Hier habe ich nun auch diverse Methoden um beispielsweise auf meine Fragen und Favoriten zuzugreifen.
Hier mal ein kleiner Ausschnitt:

Code:
public Cursor getQuestionItems(int topic) {
        SQLiteDatabase db = getReadableDatabase();
        Cursor questionCursor = db.rawQuery("Select * FROM Question WHERE topic = " + topic, null);
        questionCursor.moveToFirst();
        return questionCursor;
    }

    public Cursor getFavoriteQuestions() {
        SQLiteDatabase db = getReadableDatabase();
        Cursor questionCursor = db.rawQuery("Select * FROM Question WHERE favorite = 1", null);
        questionCursor.moveToFirst();
        return questionCursor;
    }

    public Cursor getWrongQuestions() {
        SQLiteDatabase db = getReadableDatabase();
        Cursor questionCursor = db
                .rawQuery("Select * FROM Result, Question WHERE Result.qid = Question._id AND correct = 0", 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;
   }

Auf die Methoden zugreifen tue ich von meiner QuizActivity, in der ich drei Cursor definiert habe (answerCursor, questionCursor, userResultCursor).
Meine Frage ist: Ist es nötig, dass ich in jeder Methode ein neues SQLiteDatabase-Objekt erzeuge oder reicht es wenn ich das einmal im Konstruktor mache? Und benötige ich wirklich drei verschiedene Cursor oder gibt es da auch einen besseren Weg?
 

Ähnliche Themen

R
Antworten
6
Aufrufe
1.015
swa00
swa00
B
Antworten
4
Aufrufe
494
bb321
B
FabianDev
Antworten
5
Aufrufe
559
swa00
swa00
Zurück
Oben Unten