Witam,
Piszę okienkową aplikację z użyciem Swing. Stworzyłem sobie okienko do logowania. I teraz mam problem z porównaniem tego co wpisuje w okienkach logowania z tym, co mam zapisane w bazie. Robię to w następujący sposób:
Connection conn = null;
try {
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM LOGOWANIE");
while (rs.next()) {
if ( (rs.getString("user") == l.getJTextFieldUser()) && (rs.getString("pass") == l.getJPasswordFieldPass()) )
//operacja1
else
//operacja2
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
System.err.println(e.getMessage());
}
getJTextFieldUser() i getJPasswordFieldPass() są to metody innej klasy, które zwracają stringi z wpisanym do nich tekstem.
Cokolwiek nie wpisałbym w okienku to zawsze wykonuje się operacja2. Nawet jak poprawny login wpiszę. Dodatkowo nawet jak porównam rs.getString("user") == "admin"
, czyli z takim samym stringiem jak mam zapisane w bazie to nadal wykona się operacja2, czyli w else. Nie mam pojęcia w jaki sposób mogę to porównać, żeby zwracało mi poprawnie. Dodam, że połączenie z bazą działa mi prawidłowo, gdyż z samym wyświetlaniem danych z bazy nie ma problemów. Jeżeli potrzeba więcej informacji, to mogę wrzucić więcej kodu. Proszę o pomoc.