rs.next()在while语句中返回false

时间:2018-06-28 12:44:47

标签: java sql resultset

因此,我尝试从数据库中为列表对象中存储的每个引用Id(变量msgRefList )提取msgID和msgStatus值,并尝试将这些提取的值存储在String对象中进行进一步处理。但是rs.next()方法返回false,因此不会进入赋值语句所在的while循环。我使用代码中使用的查询在数据库中进行了检查,结果中显示了一条记录,但rs.next()仍返回false。屏幕快照附带数据库结果。

下面是我正在使用的实际代码

List<String> msgRefList = listofRefrnceValues:

try {
    Connection connect = connectToDB(ENV);

    for(String reference: msgRefList){

            String query="select ID, MSG_STS from TABLE where INSTR_ID = ?";
            PreparedStatement stmt = connect.prepareStatement(query);
            stmt.setString(1,reference);
            ResultSet rs = stmt.executeQuery();
            if(rs!=null){

               while(rs.next()) {

                    P_MID = rs.getString("P_MID");
                    P_MSG_STS = rs.getString("P_MSG_STS");
               }

            }
        }
    }catch (Exception e) {
        e.printStackTrace();
    }

Database Result

1 个答案:

答案 0 :(得分:0)

您在Java的SQL-Query-String中有一些错字。您可能不是用TABLE(您的真实表)(而是您的真实表)来表示,您的所有属性也不都带有前缀MINF,而P_可能是ID。所以改变:

MID

收件人:

String query="select ID, MSG_STS from TABLE where INSTR_ID = ?";

您会没事的。