Hallo,
ich habe Probleme beim Einlesen von Daten aus einem ResultSet in von mir angelegte Vectoren col(für Spaltenwerte) und row (für Zeilenwerte). Das Problem konzentriert sich auf folgende Zeilen aus meinem Code:
Eingelesen werden nur die Spaltennamen in col aber ausgeben lassen sich sich nicht. Die Zeilenwerte werden nicht eingelesen.
Was mache ich falsch beim Umgang mit Vectoren? Kann mir bitte jemand helfen?
Gruß Maik
ich habe Probleme beim Einlesen von Daten aus einem ResultSet in von mir angelegte Vectoren col(für Spaltenwerte) und row (für Zeilenwerte). Das Problem konzentriert sich auf folgende Zeilen aus meinem Code:
Code:
//Spaltennamen ausgeben über RESULTSET
System.out.println("Ausgabe normal ueber Resultset:");
for (int i=1; i<= spaltenzahl; ++i)
{
System.out.print (meta_daten.getColumnName(i) + "\t");
//Vector col für Spalten:Ausgabe folgt unten
col.add(meta_daten.getColumnName(i)); //für Spaltennamen
}
[...]
while (ergebnis.next())
{
for (int i=1; i<= spaltenzahl; ++i)
//Alle Typen in String konvertieren
System.out.print(ergebnis.getString(i) + "\t");
row.add(ergebnis.getString(i)); //für Zeilenwerte
}
//Ausgabe der Vectoren
//Ziel: soll so aussehen wie bei ResultSet Ausgabe ohne Vectoren
System.out.println("Ausgabe der beiden Vektoren: col und row");
System.out.println("");
System.out.println("Ausgabe aus Vector: mit "+col.size()+ " Spalten "+ row.size()+" Zeilen mit je 2 Elementen ");
for (int i=0; i!=col.size() && i!= row.size();++i)
{
System.out.println (col.get(i)+" "+ row.get(i));
}
Was mache ich falsch beim Umgang mit Vectoren? Kann mir bitte jemand helfen?
Gruß Maik
Code:
//DBneu.java
import java.sql.*;
import java.util.Vector;
public class DBneu
{
public static void main (String args[])
{
String sql = "SELECT * FROM namen";
//Vector in den die namen reinkommen sollen
Vector col = new Vector(); //Vektor für Spaltennamen
Vector row = new Vector(); //Vektor für Zeilen
Vector vec =new Vector();
try
{
Class.forName( "xxx" );
String urldb2 ="xxx:person";
String userid ="xxx";
String passwd ="xxx";
Connection verbindung;
Statement stmt;
verbindung = DriverManager.getConnection( urldb, userid, passwd );
System.out.println("Verbindung zur Datenbank PERSON wird hergestellt.Bitte Warten ...\n");
stmt = verbindung.createStatement();
//SQL Anweisungsobjekt erzeugen
//Statement stmt = verbindung.createStatement();
ResultSet ergebnis = null;
//SQL ANweisung ausführen:
ergebnis = stmt.executeQuery(sql);
System.out.println("Treiber registriert. SQL Anweisung wird ausgeführt.");
System.out.println("\n\n\n\n\n");
//Metadaten über Tabelle person abfragen
ResultSetMetaData meta_daten = ergebnis.getMetaData();
int spaltenzahl = meta_daten.getColumnCount();
//Spaltennamen ausgeben über RESULTSET
System.out.println("Ausgabe normal ueber Resultset:");
for (int i=1; i<= spaltenzahl; ++i)
{
System.out.print (meta_daten.getColumnName(i) + "\t");
//Vector col für Spalten:Ausgabe folgt unten
col.add(meta_daten.getColumnName(i));
}
System.out.println("");
//SpaltenDatentypwerttypen ausgeben
for (int i=1; i<= spaltenzahl; ++i)
{
System.out.print (meta_daten.getColumnTypeName(i) + "\t");
//System.out.println("");
}
System.out.println("");
//Ausgabe der Tabellenwerte mit .getString() von RESULTSET
while (ergebnis.next())
{
for (int i=1; i<= spaltenzahl; ++i)
//Alle Typen in String konvertieren
System.out.print(ergebnis.getString(i) + "\t");
row.add(ergebnis.getString(i));
//JETZT NEU: Einlesen von Spaltennamen und Zeileninhalt in
//vec.add(ergebnis.getObject(i));
// vec.addElement(ergebnis.getString(i));
// vec.add(ergebnis.getString("vorname"));
// row.add(ergebnis.getString("name"));
System.out.println("");
}
//Ausgabe der Vectoren
System.out.println("Ausgabe der beiden Vektoren: col und row");
System.out.println("");
System.out.println("Ausgabe aus Vector: mit "+col.size()+ " Spalten "+ row.size()+" Zeilen mit je 2 Elementen ");
for (int i=0; i!=col.size() && i!= row.size();++i)
{
System.out.println (col.get(i)+" "+ row.get(i));
}
//Ergebnistabelle schließen
ergebnis.close();
//Statement schließen
stmt.close();
//Verbindung schließen
verbindung.close();
}//Ende try
catch (Exception e){
e.printStackTrace();
}//Ende catch
}//Ende main
} //Ende class
Zuletzt bearbeitet von einem Moderator: