Ausgabe von Tabellendaten auf der heimischen Konsole ;)

Status
Nicht offen für weitere Antworten.
S

synthesist

Gast
guten abend
ich habe eine Tabelle MAIN mit 5 Spalten. die verbindung klappt soweit.wie kann ich über das Resultset in möglichst kurzer anweisung alle spalten und deren werte auf der heimischen java konsole ausgeben ?


Code:
                   ....
                   ...

                  String sqlQuery = "SELECT * FROM MAIN";
		  rSet = stmt.executeQuery(sqlQuery);
		  
		  while (rSet.next())
		  {
		      System.out.println ("Wie geb ich hier alle Felder von MAIN aus?");
		      stmt.close();
		      conn.close();		      
		   }
                 catch (SQLException e)
		{
		  System.out.println( "Fehler bei Tabellenabfrage" + e );		  
		}

                 //und warum bekomme ich hier immer die meldung 
                //Fehler bei Tabellenabfragejava.sql.SQLException: Operation not allowed after ResultSet closed



H I L F E[/code]
 
S

SlaterB

Gast
eine allgemeine Ausgabeoperation:

Code:
public static void gibAus(ResultSet r) throws SQLException {
		
	ResultSetMetaData rm = r.getMetaData();
		
	int anz = rm.getColumnCount();
	L.p("Anzahl Spalten: "+anz);

	String s = "";

	for (int i=0;i<anz; i++) {
		s += bL(rm.getColumnName(i+1),15)+ " - ";
	}
	L.p("Spalten: "+s);
				
	while (r.next()) {
		s = "";
		for (int i=0;i<anz; i++) {
			s += bL(r.getString(i+1),15)+ " - ";
		}
		L.p("Eintrag: "+s);
	}
	
}	

// L.p = System.out.println

public static String bL(String st, int length) {
	if (st == null) {
		st = "NULL";	
	}
	if (length < 2) {
		return st;
	}
		

	if (st.length() > length) {
		st = st.substring(0,length-2)+"..";
	} else {
		while (st.length() < length) {
			st = " "+st;
		}
	}
		
	return st;
}

falls deine Konsole alle Zeichen mit gleicher Breite ausgibt (Font Monospaced),
wäre eine Einrückung vorteilhaft damit alles schön untereinander steht,
dafür die Operation bL ("blocke Links", fülle von Links mit Leerzeichen auf bis zur angegebenen Länge)
 

L-ectron-X

Gesperrter Benutzer
synthesist hat gesagt.:
und warum bekomme ich hier immer die meldung
Fehler bei Tabellenabfragejava.sql.SQLException: Operation not allowed after ResultSet closed
Weil du gleich nach der Ausgabe des ersten Resultats (next() liefert true wenn es weitere Resultate gibt) der DB-Anfrage die Connection schließt.
 
S

synthesist

Gast
danke,
ja mit der Exception ist klar, man könnte ja auch vorher mal überlegen ;)
sorry, aber manchmal kommt man einfach nicht mehr auf die banalsten dinge.

aber für welche Klasse steht L ?
 
S

SlaterB

Gast
wie gesagt ist L.p einfach nur ne Abkürzung für das ewig lange 'System.out.println',
p ist der kürzest mögliche Operationsname (p wie println), L ist der kürzest mögliche Klassenname (L wie Logging),
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben