帮我看看这段JAVA代码有什么问题,为什么只能判断数据库最后一行的内容

2024-12-28 12:40:29
推荐回答(4个)
回答1:

你要确定你的结果集啊,resultSet 结果集的遍历是用while循环 意味着他要执行满足你的sql查询语句的所有有结果都会被遍历到

while(rs.next())
{

String x=rs.getString("name");
String y=rs.getString("password");

if(s.equals(x)&&s2.equals(y))
jl3.setText("登陆成功!"); //当在正确的密码和帐号在中间时,他虽然本次正确了,但结果集没有遍历完,还要继续执行while(rs.nex()t){}当全部遍历完时,那个 jl3.setText()方法被执行了多次,无论在之前,或后面对了几次,或错了几次 都只能是最后一次查询出来的才会生效啦
else
jl3.setText("登陆失败!");
}
rs.close();
stmt.close();

你修改为下面看看

while(rs.next())
{

String x=rs.getString("name");
String y=rs.getString("password");

if(s.equals(x)&&s2.equals(y)){
jl3.setText("登陆成功!");
//在此处 加个break语句,跳出while循环,如果你有多个正确的
break;}
else
jl3.setText("登陆失败!");
}
rs.close();
stmt.close();

回答2:

while(rs.next())
{

String x=rs.getString("name");
String y=rs.getString("password");

if(s.equals(x)&&s2.equals(y))
jl3.setText("登陆成功!");
break;
else
jl3.setText("登陆失败!");
break;
}
rs.close();
stmt.close();
修改成这样就好了,这里循环 无论你登录成功还是失败 都会继续执行,所以只有当你最后一条可以成功的时候 刚好你能看到Text值提示 为“登录成功” 其他的都会被下一条提示给覆盖掉了,并不是没有提示“登录成功”

回答3:

if(s.equals(x)&&s2.equals(y))
{
jl3.setText("登陆成功!");
break;
}
else
jl3.setText("登陆失败!");

回答4:

你代码全都遍历了一遍,所以只有最后一个成功。
你成功了就跳出循环就行了。