Datenbankzugriff und auslesen eines Objektes

  • Antworten:5
Syntac Moore
  • Forum-Beiträge: 44

22.04.2014, 22:18:05 via Website

Hey Leute, Also ich hab eine Datenbank geschrieben und dort Fragen+ Antworten eingespeichert. So sieht mal das Grundgerüst aus: Frage Tabelle:

create table frage (frage varchar(200), schwierigkeit int, frageid int, primary key (frageid))engine = innodb;

Antwort Tabelle:

create table antwort (antworttext varchar(200), antwortid int, richtig boolean, frage_frageid int,foreign key (frage_frageid) references frage(frageid), primary key (antwortid))engine =innodb;

Der Befehl um dann jeweils die Frage und die Antwort auszulesen:

public String sucheFragePerID (int iID)
    {

        String sFrage = null;
        try
        {
            String sSQL  = "SELECT frage, antworttext, richtig FROM frage, antwort WHERE frage_frageid = frageid;";
            //String sSQL  = "SELECT name FROM kunden WHERE kundennr = '"+iID+"';";
            this.verbindeMitDatenbank();
            ResultSet rSet = this.lesen(sSQL);
            if (rSet.next()==true)
            {
                sFrage = rSet.getString("frage");

            }
            else
            {
                sFrage = "Frage nicht gefunden.";

            }


        }
        catch (Exception e)
        {
            // Hier die mögliche Fehlermeldung, vielleicht per Toast
        }
        finally
        {
            this.beendeVerbindung();
        }
        return sFrage;`

und für die Anwort:

public String sucheAntwortperID (int ID)
    {
        String sAntwort = null;
        try
        {
            String sSQL  = "SELECT antworttext, richtig FROM  antwort WHERE frage_frageid = frageid;";

            this.verbindeMitDatenbank();
            ResultSet rSet = this.lesen(sSQL);
            if (rSet.next()==true)
            {
                sAntwort = rSet.getString("antwort");
            }
            else
            {
                sAntwort = "Frage nicht gefunden.";

            }


        }
        catch (Exception e)
        {
            // Hier die mögliche Fehlermeldung, vielleicht per Toast
        }
        finally
        {
            this.beendeVerbindung();
        }
        return sAntwort;


    }

Ich hoffe, dass das bis jetzt soweit stimmt. Ich möchte das, dass was im Objekt steht also in sFrage und sAntwort auf der Oberfläche angezeigt wird. Wie ich das bei sFrage mach, ist kein Problem. Aber wie mach ich des bei sAntwort? In diesem Objekt befinden sich ja 4 verschiedene Antworten, wie kann ich jede einzeln auslesen?

Ich hoffe ihr versteht was und wie ich´s meine^^

Syntac

Antworten
SvenDD
  • Forum-Beiträge: 272

22.04.2014, 23:05:27 via Website

sAntwort als mehrdimensionales Array definieren und dann jeweils die Antworten füllen.

Antworten
Syntac Moore
  • Forum-Beiträge: 44

23.04.2014, 15:06:15 via Website

Würde das dann so aussehen?

int sAntworten[][] = new int[2][4];

— geändert am 23.04.2014, 15:08:36

Antworten
impjor
  • Forum-Beiträge: 1.793

23.04.2014, 15:45:35 via App

Besser ist es, wenn du eine eigene Klasse für die Antworten erstellst. Die Klasse sollte dann ein Feld String[] antworten und einen int richtig haben. Am besten noch zusätzliche Methoden wie istRichtig(int antwort) etc.

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
SvenDD
  • Forum-Beiträge: 272

23.04.2014, 17:10:04 via Website

Syntac Moore

Würde das dann so aussehen?

int sAntworten[][] = new int[2][4];

sAntworten[] = new int [4].

Mehr nicht.

Syntac Moore

Antworten
Syntac Moore
  • Forum-Beiträge: 44

23.04.2014, 19:15:31 via Website

Ok danke, ich werds dann mal damit probieren :)

Antworten