JTable / JList dynamisch füllen aus Datenbank

AlexD1979

Erfahrenes Mitglied
Hi!!
Ich brauche eine kurze Hilfestellung:

Wie kann man in Java dynamisch eine JList alternativ eine JTable füllen mit einem SQL-Query aus einer Oracle Datenbank ??

Es soll eine Auswahl sein das ich aus einer Liste ein Element anklicken kann und bei der Speicherung aus meiner GUI Swing-Oberfläche diese Auswahl mit in den neuen Datensatz übernommen wird.

z.B.
In einer Tabelle steht: ID und Name
0 Max
1 Marie
2 Mustafa

Wenn ich in meiner Oebrfläche nun Marie auswähle soll beim Speichern der ID-Wert 1 mit in den Datensatz übergeben werden.
 
1) JDBC - Verbindung aufbauen
2) SQL Query an die Datenbank schiecken
3) ResultSet auslesen
4) in Schleife durchs ResultSet an JList anhängen.

Wo ist das genaue problem?
Bitte Spezifiziere das genauer
 
Punkt 1 und 2 kann ich schon das ist nicht das Problem.. aber wie ich die Daten aus dem ResultSet auslese in die JList oder alternativ in eine JTable das bekomme ich einfach nicht hin... sind so viele Argumente die man da berücksichtigen muss.
 
Code:
String[] items = {"eins","zwo","drei"};
JList list = new JList(items);
String sql = "select was ich halt will";
Statement stm = conn.createStatemnet();
ResultSet rs = stm.executeQuery(sql);

while(rs.next()) {
  myJList.add(rs.getString("watichwill"));
}

Gibt ne JList mit
eins
zwo
drei
ausderDB
ausderDB2
usw

wenn ich dich falsch vertanden habe, sags.
Code ist ungetestet, direkt ins forum, also nicht unbedingt Copy & Paste fähig ;)
 
Danke du hast mich vollkommen richtig verstanden so meinte ich das auch was du da gepostet hast. Kann man diese Vorgehensweise alternativ übertragen auf JComboBox etc??

Ich denke du meintest in Zeile 2 deines Quelltextes myJList oder ist das Absicht das die Elemente mit der While-Schleife zu einer anderen JList hinzugefügt werden sollen ??

Was kommt denn in das Argument bei ...getString("wasichwill"));
Was gehört denn genau da hinein ? Die Spaltenbezeichnung im Klartext oder eine Variable ??

MfG
#AlexD
 
getString("wasichwill")

liest in diesem Fall die Spalte mit dem namen wasichwill aus.
Das heisst hier den Spaltennamen angeben. Mann kann auch alternativ einen index angeben.
z.b.
bei:
select name, email from user
liest
getString(1)

name aus. getString(2) würde email auslesen.
Andere methoden sind getInt() getLong() usw. Das heisst du kannst nicht nur bestimmen welche Spalte du auslesen willst sondern auch in welchem Datentyp du dieses Ergebnis erhalten willst.

Zu deiner anderen Frage:
Die Vorgehensweise kannst du für alle Listen / Collektionen nutzen, um
Objekte hinzuzufügen.
Die methode ist fast immer add() oder append() oder ähnlich intuitiv benannt.
Meist kann mann auch ohne in der API nachzuschlagen durch reines ausprobieren schnell auf die Methode kommen :)

ansonsten ist
http://www.javasoft.com/api
:)
 
Es klappt noch nicht.. was mache ich falsch ?? Hier der Quelltext:




sql = "SELECT BEZEICHNUNG FROM RATIO";
stmt = con.createStatement();
result = stmt.executeQuery(sql);

while (result.next()) {
list.add(result.getString("BEZEICHNUNG"));
//an der Stelle mosert debugger das add an..
}
}
 
Zuletzt bearbeitet:
ok.. ich beschränke mich dann auf das wesentliche...

"The Method add(String Component) in the type Container is not applicable for the argument(String)"
Das liefert mir der Debugger an der Stelle des Adds
 

Neue Beiträge

Zurück