gpt4 book ai didi

java - 用户从应用程序登录数据库

转载 作者:行者123 更新时间:2023-12-01 11:50:24 25 4
gpt4 key购买 nike

这个问题一直困扰着我,我一生都无法弄清楚:

我必须让我的应用程序收集用户的输入,作为登录数据库的一种方式。我的问题是,根据代码,实际上只允许第一个用户进入。我做错了什么?

代码

for(int i=0;i<numRows;i++)
{
String Usernames = rs.getString("Username");
String Password = rs.getString("Password");
String getAcc = rs.getString("UserType");
rs.next();
if(Usernames.trim().equals(UsernameIn)&&Password.trim().equals(PasswordIn))
{
start.writeToFile("ConToDatabase Class|Username: "+UsernameIn+" and Password: "+PasswordIn+" Accepted");
if(getAcc.trim().equals("admin"))
{
start.writeToFile("ConToDatabase Class|Authenticated user identified as \"admin\", Entering AdminUser Class|UTypeAdmin Method");
clear();
AdminUser.UTypeAdmin(args, UsernameIn, rs, dbTable(), path);
}
if(getAcc.trim().equals("standard"))
{
start.writeToFile("ConToDatabase Class|Authenticated user identified as \"standard\", Entering StandardUser Class|UTypeStandard Method");
clear();
StandardUser.UTypeStandard(args, UsernameIn, rs, dbTable(),path);
}
}
else
{
start.writeToFile("ConToDatabase Class|User invalid, reset application");
System.out.println("Invalid User, Resetting...");
Thread.sleep(2000);
ConToDatabase.clearandreset(args);
}
}

最佳答案

我认为问题出在 ELSE block 中的代码。

您想在说用户无效之前测试所有用户。

对于第一个用户,你不会遇到这个问题,因为你只到达 IF block 代码,但对于所有其他用户,你至少会经过一次 ELSE block 。

你可以这样做:

boolean founded = false;
for(int i=0;i<numRows;i++)
{
String Usernames = rs.getString("Username");
String Password = rs.getString("Password");
String getAcc = rs.getString("UserType");
rs.next();

if(Usernames.trim().equals(UsernameIn)&&Password.trim().equals(PasswordIn))
{
founded = true;
start.writeToFile("ConToDatabase Class|Username: "+UsernameIn+" and Password: "+PasswordIn+" Accepted");

if(getAcc.trim().equals("admin"))
{
start.writeToFile("ConToDatabase Class|Authenticated user identified as \"admin\", Entering AdminUser Class|UTypeAdmin Method");
clear();
AdminUser.UTypeAdmin(args, UsernameIn, rs, dbTable(), path);
}

if(getAcc.trim().equals("standard"))
{
start.writeToFile("ConToDatabase Class|Authenticated user identified as \"standard\", Entering StandardUser Class|UTypeStandard Method");
clear();
StandardUser.UTypeStandard(args, UsernameIn, rs, dbTable(),path);
}
}
}

if(!founded)
{
start.writeToFile("ConToDatabase Class|User invalid, reset application");
System.out.println("Invalid User, Resetting...");
Thread.sleep(2000);
ConToDatabase.clearandreset(args);
}

您也想注意答案中的评论。

关于java - 用户从应用程序登录数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28834521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com