0

クラスにこのメソッドがありますが、

 public static AccountHolder getAccountHolder(String username, String password) {

        try {
            String verifyQuery = "SELECT COUNT(username) FROM accountholder WHERE username=? AND password=?)";
            connection = getConnection();
            ptmt = connection.prepareStatement(verifyQuery);

            ptmt.setString(4, username);
            ptmt.setString(5, password);

            ResultSet verified = ptmt.executeQuery();

            if (verified.next()) {
                // Only one Result
                if (verified.getInt(1) == 1) {
                    connection.close();
                    return 1;
                } else {
                    connection.close();
                    return null;
                }

            }
        } catch (Exception ex) {
        }
    }

クラスである AccountHolder 型のオブジェクトを返すことになっていることはわかっています。AccountHolder クラスのコードは次のとおりです。

public class AccountHolder {
   private String firstname;
   private String lastname;
   private String username;
   private String password;
   private String address;
   private String phonenumber;

  // get & set methods();
}

メソッドを使用してデータベースから一致するユーザー名とパスワードを返すことになっています。どうすればこれを達成できますか?

4

4 に答える 4

0

コードを変更してみてください

PreparedStatement stmt = conn.prepareStatement(
        "SELECT USERNAME FROM accountholder 
                             WHERE USERNAME = ? AND PASSWORD = ?");
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
    // valid credentials
} else {
    // invalid credentials
}
于 2013-06-18T06:26:55.400 に答える
0

回答として取得した の要素をResultSetのオブジェクトに変換しAccountHolder、 line の代わりにそれを返す必要がありますreturn 1;

于 2013-06-18T06:24:40.173 に答える