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 程序员,所以我想知道:
- 有一个更好的方法吗?和
- 既然有,我能做什么,怎么做?
谢谢!