Java rs.next()在while语句中返回false
所以,我试图从数据库中提取列表对象中存储的每个引用变量msgRefList的msgID和msgStatus值,并试图将这些提取的值存储在字符串对象中以供进一步处理。但是rs.next方法返回false,因此它不会进入赋值语句所在的while循环。我使用代码中使用的查询签入数据库,结果中显示了一条记录,但仍然是rs.next返回false。附有数据库结果的屏幕截图 下面是我正在使用的实际代码Java rs.next()在while语句中返回false,java,sql,resultset,Java,Sql,Resultset,所以,我试图从数据库中提取列表对象中存储的每个引用变量msgRefList的msgID和msgStatus值,并试图将这些提取的值存储在字符串对象中以供进一步处理。但是rs.next方法返回false,因此它不会进入赋值语句所在的while循环。我使用代码中使用的查询签入数据库,结果中显示了一条记录,但仍然是rs.next返回false。附有数据库结果的屏幕截图 下面是我正在使用的实际代码 List<String> msgRefList = listofRefrnceValues:
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();
}
您在java中的SQL查询字符串中有一些输入错误。您可能指的是MINF而不是TABLE您的真实表,而且您的所有属性都没有前缀P_2;,ID可能是MID。因此,请更改:
String query="select ID, MSG_STS from TABLE where INSTR_ID = ?";
致:
您会没事的。寻求调试帮助的问题此代码为什么不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。另请参阅:表是保留关键字。尝试使用“TABLE”executeQuery将永远不会返回null,因此完全不需要进行null检查。查询中的所有内容都不正确。你期待什么?在发布问题之前,至少做一些基本的检查。
String query="select P_MID, P_MSG_STS from MINF where P_INSTR_ID = ?";