URL: https://www.overclockers.at/coding-stuff/javadaten_aus_resultset_weiter_verwenden_207227/page_1 - zur Vollversion wechseln!
ich hab da ein problem wo ich ansteh. datenbankverbindung wird aufgebaut, dann bekomm ich die daten aus den 3 spalten der db. diese möcht ich aber nicht auf der console ausgeben,so wie es zurzeit unten im code der fall ist, sondern in eine 3 spaltige tabelle schreiben.
rs.getString(2), rs.getString(3), rs.getString(4) möchte bzw. muss ich in ein mehrdimensionales Array bekommen, da ja einer der Konstruktoren von jTable einCode:Connection con; try { con = DriverManager.getConnection("jdbc:mysql://xx.xxx.x.xx:xxxx/bla", "bla", "bla"); Statement stmt = con.createStatement(); String query = "SELECT * FROM bla"; ResultSet rs = stmt.executeQuery(query); while(rs.next()) System.out.printf( "Spalte 1: %s | Spalte 2: %s | Spalte 3: %s%n", rs.getString(2), rs.getString(3), rs.getString(4) ); if(!rs.next()) System.out.println("Ende der Liste");
ist.Code:public jTable(Object[][]rowData, Object[]columnNames)
also ich greif immer mit rs.getXXX auf die Daten zu.
trotz mehrmaligen lesen ist mir jetzt eigentlich nicht ganz klar, was deine eigentliche fragestellung ist? ob jtable das richtige ist? wie du das umsetzen kannst mit jtable, oder was sonst?
Also so wie ichs verstanden hab will er wissen obs ne bessere Methode als rs.getXXX gibt um die Daten zu bekommen. Am besten wahrscheinlich als rs.getData welches Object[][] liefert.
Aber wie gesagt, machs immer mit getXXX. In deinem Fall halt getString, die Strings in ein Array, dieses wiederum in ein Array und das dann an die jTable übergeben.
ist das so org mißverständlich geschrieben.Zitatdiese möcht ich aber nicht auf der console ausgeben,so wie es zurzeit unten im code der fall ist, sondern in eine 3 spaltige tabelle schreiben.
JDBC aber keine Grundlagen? Aber bitte:
Code:Object[] row; Object[][] data = new Object[rs.size()][3]; int i = 0; while (rs.next) { row = new Object[3]; row[0] = rs.getString(2); row[1] = rs.getString(3); row[2] = rs.getString(4); data[i] = row; i++; }
doch schon grundlagen, ich probier eh schon ganze zeit herum. ich habe das gefühl heute schon betriebsblind zu sein.
so gehts mir des öfteren, wenn ich zulang sitz, komm ich auf einfachere sachen nimma drauf.
danke schon mal im voraus, ich werds gleich ausprobieren.
Eigentlich braucht man die Variable row garnicht, fällt mir grad auf:
Code:Object[][] data = new Object[rs.size()][3]; int i = 0; while (rs.next) { data[i][0] = rs.getString(2); data[i][1] = rs.getString(3); data[i][2] = rs.getString(4); i++; }
rs.size() gibts nicht. konnte es aber anders lösen. trotzdem danke für deinen denkanstoss.
Jop, wie gesagt, kA wie die Funktion genau heißt, aber irgendwie kommt ma halt auf die Größe des ResulSets. Und was meinst mit anders lösen? Nur das mit rs.size() oder ansonsten auch noch was geändert?
hm, also die frage war im prinzip wie du ein array befüllen kannst? sry, aber das war aus deinem ersten post beim besten willen nicht klar.
viel erfolg weiterhin
http://www.java-forums.org/database...ltset-size.html
Da gibts Hilfe zur size
sry, bin dir antwort schuldig geblieben. ich hab kein array verwendet, sondern mit Vector und ResultSetMetaData gearbeitet.Zitat von tinkerJop, wie gesagt, kA wie die Funktion genau heißt, aber irgendwie kommt ma halt auf die Größe des ResulSets. Und was meinst mit anders lösen? Nur das mit rs.size() oder ansonsten auch noch was geändert?
die vectoren "daten" und "spaltenNamen" hab ich dann an die jtable übergebenCode:ResultSetMetaData rsmd = rs.getMetaData(); int spalten = rsmd.getColumnCount(); // Spaltennamen holen for (int i = 1; i <= spalten; i++) { spaltenNamen.addElement(rsmd.getColumnName(i)); } // Row data holen while (rs.next()) { Vector row = new Vector(spalten); for (int i = 1; i <= spalten; i++) { row.addElement(rs.getObject(i)); } daten.addElement(row); } rs.close(); stmt.close();
Ah, ok. Danke fürs zeigen!
sry dass so lang auf sich warten hat lassen. bin in letzter zeit schlampig mit forum lesen.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025