A
Hallo ich programmiere grade eine Datenbankanbindung an ein Servlet. Dabei bekomme ich eine java.sql.SQLException. Diese besagt dass die Aktion nicht ausgeführt werden kann, weil das Resultset schon geschlossen ist. Ich weiss nur nicht warum. Der folgende Code ist meine Datenbankklasse, die von einer abstrakten Klasse DBControler erbt, die 4 Methoden hat, eine zum starten der Datenverbindung, einen zum schliessen der Datenbank, eine zum ausführen eines updates der Datenbank und eine Datenbankabfrage mit rückgabe des ResultSet.
Ich poste hier mal nur die Methode die schiefgeht, der Fehler kommt beim Eintritt in die while schleife.
public Vector readUsers ()
{
System.out.println("Methode readUsers zur Ausgabe aller Tupel aufgerufen...");
Vector dat = new Vector ();
System.out.println("neuer Vektor erstellt...");
try
{
this.startConnection();
System.out.println("Sende String 'USE simplex'...");
String sql = "USE simplex;";
this.updateStmt(sql);
sql = "SELECT * FROM login;";
System.out.println("Sende String 'SELECT * FROM login'...");
ResultSet tmp = this.queryStmt(sql);
System.out.println("Eintritt in kritischen Bereich jetzt...");
//solange bis alle Datensätze durchgegangen wurden
System.out.println("Eintritt in while-schleife jetzt...");
while (tmp.next())
{
System.out.println("Eintritt in Leseschleife...");
//erstelle neue Datenbankbean
tables.Login tbean = new tables.Login ();
System.out.println("Neue Datenbankbean login erstellt");
//Daten in Bean schreiben
tbean.setId(Integer.parseInt(tmp.getString(1)));
tbean.setUser(tmp.getString(2));
tbean.setScreenname(tmp.getString(3));
tbean.setPwd(tmp.getString(4));
tbean.setEmail(tmp.getString(5));
tbean.setPhone(tmp.getString(6));
tbean.setMobile(tmp.getString(7));
tbean.setName(tmp.getString(8));
tbean.setCallname(tmp.getString(9));
tbean.setCompany(tmp.getString(10));
//Bean in Vektor speichern
System.out.println("Einfügen der Bean in den Vektor...");
dat.addElement(tbean);
}
}
catch (SQLException sqlerr)
{
sqlerr.printStackTrace();
}
catch (NullPointerException ne)
{
ne.printStackTrace();
}
this.closeConnection();
return dat;
}
im vorraus vielen dank