【发布时间】:2018-06-28 12:44:47
【问题描述】:
所以,我正在尝试从数据库中为存储在列表对象中的每个引用 Id(variable 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();
}
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。
-
TABLE是保留关键字。尝试使用`TABLE` -
executeQuery将永远返回null,因此完全没有必要进行空值检查。 -
查询中的所有内容都不正确。你能指望什么 ?在发布问题之前至少做一些基本的水平检查。