public static int logIn(Statement stmt){
int id;
String pw;
String select;
boolean match;
System.out.print("userID: ");
id = input.nextInt();
input.nextLine();
System.out.print("password: ");
pw = input.next();
input.nextLine();
select = "SELECT user_id, password FROM login WHERE user_id = " + id;
try{
ResultSet rs = stmt.executeQuery(select);
while(rs.next()){
if(id == rs.getInt(1) && pw.equals(rs.getString(2))){
match = true;
}
}
}
catch(SQLException logfail){
logfail.printStackTrace();
System.out.println("could not print password");
}
if(match == true)
return id;
else break;
}
私のプログラムでは、ユーザーはログイン情報を入力します。次に、オプション 1 ~ 7 を選択するメニューが表示されます。オプション 1 ~ 7 は、独自のデータに対して実行されるさまざまなクエリです。
私のログイン機能は、彼らが自分のデータにアクセスできるように、彼らが誰であるかを確認することです. 検証に合格すると、入力された ID 番号を返し、それを他の関数 (1-7) に渡すことができます。
私の if-else ステートメントでは、パスワードが一致した場合は ID 番号を返し、null
失敗した場合は返すようにします。
私はそれint
ができないことを知っていますnull
が、このメソッドの戻り値の型はint
どうすればよいですか? 割り当てをタイムリーに完了するために、条件が一致しない場合は値 0 を返し、ログインが失敗したことを示します。しかし、私にとってより重要なのは、優れた Java プログラマーになることなので、次のことを知りたいです。
- これを行うより良い方法はありますか?と
- あるので、どうすればいいですか?
ありがとう!