从Oracle数据库返回的多行中选择Specific value

时间:2017-07-28 04:27:06

标签: java database jdbc netbeans oracle11g

我试图比较数据库返回的值中的特定值 我从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");
    }
}

有人能为我建议一个更好的解决方案,还是可以告诉我更好的解决方案?

2 个答案:

答案 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())您正在获取批量数据,因此您需要将其迭代到比较你想要的一个值