Hallo.
Hab noch folgende zwei Fragen:
1. Beim Zugriff auf ResultSet "user_rs1" in der if-Schleife kommt die Meldung:
Error while executing the query java.sql.SQLException: Operation not allowed after ResultSet closed
Wenn ich die if Schleife vor password_rs2 mache, kommt diese Exception nicht. Wieso? Wird die erste rs automatisch geschlossen / gelöscht, wenn eine zweie gemacht wird?
2. Die folgende if Schleife wird nicht ausgeführt, obwohl die Bedingung doch eigentlich passen müsste. Beim test vorher wird ja auch "Kai" auf der Konsole ausgegeben ?!? "logged in" wird aber nicht ausgegeben ?!?
Hier die ganze Klasse:
Hab noch folgende zwei Fragen:
1. Beim Zugriff auf ResultSet "user_rs1" in der if-Schleife kommt die Meldung:
Error while executing the query java.sql.SQLException: Operation not allowed after ResultSet closed
Wenn ich die if Schleife vor password_rs2 mache, kommt diese Exception nicht. Wieso? Wird die erste rs automatisch geschlossen / gelöscht, wenn eine zweie gemacht wird?
2. Die folgende if Schleife wird nicht ausgeführt, obwohl die Bedingung doch eigentlich passen müsste. Beim test vorher wird ja auch "Kai" auf der Konsole ausgegeben ?!? "logged in" wird aber nicht ausgegeben ?!?
Code:
// test ob gefunden
System.out.println( rs1_user.getString(1) );
if (rs1_user.getString(1) == "Kai" )
{
isLoggedIn = true;
System.out.println("Logged in.");
}
Hier die ganze Klasse:
Code:
package server;
import java.sql.*;
public class Server implements LoginInterface
{
private Connection connection;
private String user;
private String password;
private Statement stmt1, stmt2;
private ResultSet rs1_user, rs2_password;
private boolean isLoggedIn = false;
public void login(String user, String password)
{
connection = new DatabaseConnection().connectToDatabase();
this.user = user;
this.password = password;
try
{
stmt1 = connection.createStatement();
String userQuery = "SELECT username FROM user WHERE username = 'Kai'";
rs1_user = stmt1.executeQuery(userQuery);
rs1_user.next();
// test ob gefunden
System.out.println( rs1_user.getString(1) );
if (rs1_user.getString(1) == "Kai" )
{
isLoggedIn = true;
System.out.println("Logged in.");
}
stmt2 = connection.createStatement();
String passwordQuery = "SELECT password FROM user WHERE password = '1111'";
rs2_password = stmt1.executeQuery(passwordQuery);
rs2_password.next();
System.out.println( rs2_password.getString(1) );
}
catch (SQLException e)
{
System.err.println("Error while executing the query " + e);
}
catch (Exception e)
{
System.err.println("Username and / or password wrong");
}
}
public void logout()
{
isLoggedIn = false;
System.out.println("Logged out.");
}
public boolean isLoggedIn()
{
return isLoggedIn;
}
public void setLoggedIn(boolean loggedIn)
{
this.isLoggedIn = loggedIn;
}
}