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只是各種查詢,將在他們自己的數據上運行。如何不返回任何返回類型爲int的方法
我的登錄功能是驗證他們是誰,以便讓他們訪問他們自己的數據。如果驗證通過,我會返回它們輸入的ID號碼,以便我可以將它傳遞給其他功能(1-7)。
在我的if-else語句中,如果密碼匹配,我希望它返回ID號,如果失敗則返回null
。
我知道int
不能是null
但我的返回類型爲這種方法是int
所以我該怎麼辦? 爲了及時完成我的任務,如果事情不匹配,我將返回值0,表示登錄失敗。但是,對我來說更重要的是成爲一名優秀的Java程序員,所以我想知道:
- 有沒有更好的方法來做到這一點?和
- 既然有,我該怎麼做,怎麼做?
謝謝!