我试图比较数据库返回的值中的特定值
我从STORESTAFF
获取多行,但我试图比较从表中返回的一个值..
contains() and
equals()
无效。
String qry = "Select all employe_id from storestaff where post='Admin'";
pstmnt = conn.prepareStatement(qry);
ResultSet rs2 = pstmnt.executeQuery(qry);
if (rs2.next()) {
String aa = rs2.getString("employe_id");
if (aa.contains(UN.getText())) {
this.aa = aa;
JOptionPane.showMessageDialog(null, "Exists");
} else {
JOptionPane.showMessageDialog(null, "Username doesn't Exist");
}
}
有人能为我建议一个更好的解决方案,还是可以告诉我更好的解决方案?
答案 0 :(得分:0)
如果你使用if
它会返回第一个值,在你的情况下你必须使用while
,这会循环抛出所有结果,所以你可以检查多个结果,而不是你可以使用:
boolean check = false;
while (rs2.next()) {
String aa = rs2.getString("employe_id");
if (aa.contains(UN.getText())) {
this.aa = aa;
check = true;//if the value exist change the variable to true
break; //and break the loop
}
}
//when you end you have to check the value, if true then the user exist else no
if (check) {
JOptionPane.showMessageDialog(null, "Exists");
} else {
JOptionPane.showMessageDialog(null, "Username doesn't Exist");
}
答案 1 :(得分:0)
将 if(rs2.next())更改为w hile(rs2.next())您正在获取批量数据,因此您需要将其迭代到比较你想要的一个值