Hallo,
ich habe ein Problem mit einem Java Programm.
Ich möchte, dass sich ein Nutzer über eine GUI mit Personalnummer, Vorname, Nachname und Passwort anmeldet.
In der GUI ist das folgende Methode:
Die Klassen "Steuerung" ruft eine Methode der Klasse "SqlOperator" auf, die die eingegebenen Daten mit den Daten aus einer Datenbank vergleicht:
Methode anmelden in der Klasse SqlOperator:
Die Methode mitarbeiterAnmelden() der Klasse "sqlOperator" soll, falls die Anmeldung erfolgreich war ein Objekt der Klasse Mitarbeiter erzeugen:
Wenn ich die Methoden über die GUI aufrufe, bekomme ich immer eine SQLException:
java.sql.SQLException: Illegal operation on empty result set.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:854)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2709)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2850)
at SqlOperator.anmelden(SqlOperator.java:161)
at Steuerung.anmelden(Steuerung.java:30)
at Surface.anmeldenButton_ActionPerformed(Surface.java:91)
Ich hoffe mir kann jemand helfen und sagen woran das liegt.
Danke schonmal!
ich habe ein Problem mit einem Java Programm.
Ich möchte, dass sich ein Nutzer über eine GUI mit Personalnummer, Vorname, Nachname und Passwort anmeldet.
In der GUI ist das folgende Methode:
Code:
steuerung.anmelden(Integer.parseInt(personalnummerBox.getText()), vorNameBox.getText(), nachNameBox.getText(), passWortBox.getText());
Die Klassen "Steuerung" ruft eine Methode der Klasse "SqlOperator" auf, die die eingegebenen Daten mit den Daten aus einer Datenbank vergleicht:
Code:
public void anmelden(int pPersonalnummer, String pVorname, String pNachname, String pPasswort) {
boolean anmeldungsStatus = sqlop.anmelden(pPersonalnummer, pVorname, pNachname, pPasswort);
if(anmeldungsStatus = true){
sqlop.mitarbeiterAnmelden(pPersonalnummer);
} else {
System.out.println("Fehler bei der Anmeldung!");
}
}
Methode anmelden in der Klasse SqlOperator:
Code:
public boolean anmelden(int pPersonalnummer, String pVorname, String pNachname, String pPasswort){
verbindungAufbauen();
int personalnummer = -1;
String vorname = null;
String nachname = null;
String passwort = null;
try {
ResultSet datenmenge2;
datenmenge2 = befehl.executeQuery(
"SELECT * FROM Mitarbeiter Where personalnummer = 'pPersonalnummer'");
personalnummer = datenmenge2.getInt(personalnummer);
vorname = datenmenge2.getString("vorname");
nachname = datenmenge2.getString("nachname");
passwort = datenmenge2.getString("passwort");
}
catch (Exception e) {
e.printStackTrace();
}
if(pVorname.equals(vorname) && pNachname.equals(nachname) && steuerung.md5(pPasswort).equals(passwort) && pPersonalnummer == personalnummer){
return true;
} else {
return false;
}
}
Die Methode mitarbeiterAnmelden() der Klasse "sqlOperator" soll, falls die Anmeldung erfolgreich war ein Objekt der Klasse Mitarbeiter erzeugen:
Code:
public void mitarbeiterAnmelden(int pPersonalnummer){
verbindungAufbauen();
int personalnummer;
String vorname;
String nachname;
boolean rEinfuegen;
boolean rEntfernen;
boolean rBearbeiten;
boolean rGrundSehen;
try {
ResultSet datenmenge;
datenmenge = befehl.executeQuery(
"SELECT * FROM Mitarbeiter Where personalnummer = 'pPersonalnummer'");
personalnummer = datenmenge.getInt("personalnummer");
vorname = datenmenge.getString("vorname");
nachname = datenmenge.getString("nachname");
rEinfuegen = datenmenge.getBoolean("rEinfuegen");
rEntfernen = datenmenge.getBoolean("rEntfernen");
rBearbeiten = datenmenge.getBoolean("rBearbeiten");
rGrundSehen = datenmenge.getBoolean("rGrundSehen");
Mitarbeiter m2Neu = new Mitarbeiter(personalnummer, vorname, nachname, rEinfuegen, rEntfernen, rBearbeiten, rGrundSehen);
}
catch (Exception e) {
e.printStackTrace();
}
}
Wenn ich die Methoden über die GUI aufrufe, bekomme ich immer eine SQLException:
java.sql.SQLException: Illegal operation on empty result set.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:854)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2709)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2850)
at SqlOperator.anmelden(SqlOperator.java:161)
at Steuerung.anmelden(Steuerung.java:30)
at Surface.anmeldenButton_ActionPerformed(Surface.java:91)
Ich hoffe mir kann jemand helfen und sagen woran das liegt.
Danke schonmal!