1

データベースからのデータを使用して JSP ページに入力されたユーザー名とパスワードを確認しようとしています。すべてのパラメーターが来ていますが、データが一致しても関数は false を返します。私のせいは何ですか?

これが私のコードです:

public class LoginService {
    public boolean loginCheck(String username, String password){
        String query;
        String dbUsername, dbPassword;
        boolean login = false;

        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/blog_u", "root", "root");
            Statement stmt = (Statement) con.createStatement();
            query = "SELECT username, password FROM user;";
            stmt.executeQuery(query);
            ResultSet rs = stmt.getResultSet();

            while(rs.next()){
                dbUsername = rs.getString("username");
                dbPassword = rs.getString("password");

                if(dbUsername == username && dbPassword == password){
                    System.out.println("OK");
                    login = true;
                }
                System.out.println(username + password + " " + dbUsername + dbPassword);
            }
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return login;
    }
}
4

1 に答える 1

3
if(dbUsername == username && dbPassword == password){

に変更する必要があります

if(dbUsername.equals(username) && dbPassword.equals(password)){

==Java で使用して文字列を比較するべきではありません。Java で文字列を比較するにはどうすればよいですか? を参照してください。.

于 2013-04-28T15:42:23.410 に答える