[JAVA]daten aus resultSet weiter verwenden

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/javadaten_aus_resultset_weiter_verwenden_207227/page_1 - zur Vollversion wechseln!


repi schrieb am 09.05.2009 um 22:33

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.

Code:
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");
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 ein
Code:
public jTable(Object[][]rowData, Object[]columnNames)
ist.
Wenn jemand eine andere bzw. bessere Idee hat, dann bin ich dafür auch sehr dankbar.


tinker schrieb am 09.05.2009 um 22:36

also ich greif immer mit rs.getXXX auf die Daten zu.


3mind schrieb am 09.05.2009 um 22:37

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?


tinker schrieb am 09.05.2009 um 22:41

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.


repi schrieb am 09.05.2009 um 22:49

Zitat
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.
ist das so org mißverständlich geschrieben.

die daten die ich aus rs.getString(2), rs.getString(3), rs.getString(4) möchte ich nicht auf der console ausgeben lassen, sondern in ein Mehrdimensionales Array stecken. wie krieg ich das hin?
falls ich mich dumm ausgedrückt hab, entschuldigt bitte.


tinker schrieb am 09.05.2009 um 22:58

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++;
}

Mal auf die schnelle. Obs jetzt wirklich rs.size() heißt weiß ich nicht.


repi schrieb am 09.05.2009 um 23:05

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.


tinker schrieb am 09.05.2009 um 23:09

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++;
}


repi schrieb am 10.05.2009 um 00:14

rs.size() gibts nicht. konnte es aber anders lösen. trotzdem danke für deinen denkanstoss.


tinker schrieb am 10.05.2009 um 00:17

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?


3mind schrieb am 10.05.2009 um 00:19

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


jaime schrieb am 16.05.2009 um 10:20

http://www.java-forums.org/database...ltset-size.html

Da gibts Hilfe zur size


repi schrieb am 04.06.2009 um 09:53

Zitat von tinker
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?
sry, bin dir antwort schuldig geblieben. ich hab kein array verwendet, sondern mit Vector und ResultSetMetaData gearbeitet.
Code:
  
            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();
die vectoren "daten" und "spaltenNamen" hab ich dann an die jtable übergeben


tinker schrieb am 04.06.2009 um 09:57

Ah, ok. Danke fürs zeigen! :)


repi schrieb am 04.06.2009 um 09:59

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