Hallo Leute,
also ich habe ein Prolem. Habe in Eclipse mit dem WindowBuilder eine Frame für einen Login erstellt. Ein TextFeld für die Eingabe des Nutzernamens und eins für die Eingabe des Passworts sowie ein Button für den Login. Nun liegt der Nutername und das Passwort bereits in einer Tabelle auf meiner phpMyAdmin-Datenbank. Die Verbindung zur DB funktioniert. Wenn man in die Textfelder was eingibt soll die Eingabe mit den Daten auf der DB verglichen werden. Habe für den Login-Button einen ActionListener geschrieben (s.u.). Wenn ich den Benutzernamen und das Passwort eingebe, bekomme ich nur Exceptions. Ich weiss nicht woran es liegt, weil ich noch Anfänger in Java bin. Könnt ihr euch mal meinen ActionListener anschauen und mir sagen was ich machen muss? Das wäre super. Ist ein Projekt und ich muss das unbedingt hinkriegen
Hier der ActionListener:
also ich habe ein Prolem. Habe in Eclipse mit dem WindowBuilder eine Frame für einen Login erstellt. Ein TextFeld für die Eingabe des Nutzernamens und eins für die Eingabe des Passworts sowie ein Button für den Login. Nun liegt der Nutername und das Passwort bereits in einer Tabelle auf meiner phpMyAdmin-Datenbank. Die Verbindung zur DB funktioniert. Wenn man in die Textfelder was eingibt soll die Eingabe mit den Daten auf der DB verglichen werden. Habe für den Login-Button einen ActionListener geschrieben (s.u.). Wenn ich den Benutzernamen und das Passwort eingebe, bekomme ich nur Exceptions. Ich weiss nicht woran es liegt, weil ich noch Anfänger in Java bin. Könnt ihr euch mal meinen ActionListener anschauen und mir sagen was ich machen muss? Das wäre super. Ist ein Projekt und ich muss das unbedingt hinkriegen
Hier der ActionListener:
Java:
JButton b_login = new JButton("Login");
b_login.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Connection conn = TestDB.connectToDB();
/*Die Variablen benutzername und passwort speichern den Text aus den
*Textfeldern tf_benutzername und tf_passwort */
String benutzername = tf_benutzername.getText().trim();
String passwort = tf_passwort.getText().trim();
Statement stmt = conn.createStatement();
ResultSet rs;
String sql = "SELECT Passwort FROM Nutzer WHERE benutzername = '"
+ benutzername
+ "'and passwort = '"
+ passwort
+ "'";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
/*
* while-Schleife gibt die Nutzer zurück, die die SQL
* Anweisung abgefragt hat. Variable count als Zähler. Beim
* 1 Durchlauf wird geschaut, ob der Nutzer so wie
* eingetippt existiert.
*/
int count = 0;
while (rs.next()) {
count = count + 1;
}
// Wenn der Nutzer einmal in der Tabelle existiert, dann war
// der Login erfolgreich!
if (count == 1 && passwort.equals(rs)) {
JOptionPane.showMessageDialog(null,
"Login erfolgreich!");
}
// Existiert ein Nutzer mehrmals in der Tabelle, ist kein
// Login möglich!
else if (count > 1) {
JOptionPane
.showMessageDialog(null,
"Nutzer existiert mehrfach, Login fehlgeschlagen!");
}
// Nutzer existiert nicht, da Schleife nicht hochzählt!
else {
JOptionPane
.showMessageDialog(null,
"Nutzer existiert nicht, Login fehlgeschlagen!");
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
});