Java 改进登录功能,解决循环问题
我是新来的。尝试进行数据库检索演示以登录系统,以下是我的功能代码: 我将调用Java 改进登录功能,解决循环问题,java,login,Java,Login,我是新来的。尝试进行数据库检索演示以登录系统,以下是我的功能代码: 我将调用goLogin函数并传入输入的id和密码以进行验证,我还将从数据库中获取所有id以进行检查。ID正确后,只需检查密码 public void goLogin(String id, String pass){ String[99] allID = getAllIDFromDB(); for(int i=0;i<allID.length;i++){ if(allID[i]==id){ St
goLogin
函数并传入输入的id和密码以进行验证,我还将从数据库中获取所有id以进行检查。ID正确后,只需检查密码
public void goLogin(String id, String pass){
String[99] allID = getAllIDFromDB();
for(int i=0;i<allID.length;i++){
if(allID[i]==id){
String passwordDB = getPasswordFromDB(id);
if(pass==password){
System.out.println("Correct Password");
}else{
System.out.println("Wrong Password");
}
}
}
public void goLogin(字符串id,字符串传递){
字符串[99]allID=getAllIDFromDB();
对于(int i=0;i首先,为什么要从数据库中检索所有用户id,而不是进行sql查询以基于此id检索此用户的行
大概是这样的:
Select * from `users` where id = {id};
如果要停止循环发现错误的密码,请在else范围中添加break。是的,您甚至可以执行以下操作:
Select * from `users` where id = {id} and password = {password}
另外,要在Java中比较String
s,应该使用string1.equals(string2)
,而不是=
操作符。在我看来,程序的主要问题是实现登录功能的逻辑
登录函数的实现可以用不同的模式实现,基于您的程序代码,我假设您只需要一个最基本的登录函数,允许程序对用户输入的ID和密码进行验证
实际上,这种基本的验证可以在数据库查询中完成。您只需获取用户输入的ID和密码,让数据库查询进行过滤,并确定用户输入的ID和密码是否有效
首先使用此查询:
Select DATABASEID From Database Where DATABASEID=inputID and DATABASEPASSWORD=inputPassword;
Java代码:
public void goLogin(String id, String pass){
// Since i changed the Query, you need to pass in the ID and Password to let the Query to filtering
String DatabaseID = getIDFromDB(id, pass);
// Simple Logic, If DatabaseID have value which mean the ID and Password is correct
// Because the Database Query will return null if the ID and Password is Wrong
if(DatabaseID!=null){
System.out.println("ID and Password is Correct.");
}else{
System.out.println("ID or Password is Incorrect.");
}
}
此逻辑非常简单,但也有一些缺点,与代码相比,唯一的优点是:
仍然能够对用户输入的ID和密码进行基本验证
删除循环的和其他不必要的(如果有)
只能访问数据库一次
希望这会有所帮助。可能的副本