[英]How to use next() inside the for loop in java for getting next resultset
我想获取数组常量中显示的每个编号的ID。 请找到下面的代码。 当我运行此程序时,我收到“ ResultSet位置不正确,也许您需要调用下一个”。 错误。 但是101工作正常。 其余值还是未获取。 请任何人帮我
PreparedStatement m_inoutid = null;
docno="[101,102,103,104]";
String minoutid[]=new String[1000];
String documentno = docno.substring(1, docno.length() - 1);
List<String> docnumbers = new ArrayList<String>();
String[] split = documentno.split(",");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < split.length; i++) {
String sql = "select id from mytable where fid=?";
outid = conn.prepareStatement(sql);
String idfromquery=split[i];
outid.setString(1, idfromquery);
ResultSet idResultSet = outid.executeQuery();
idResultSet.next();
id = idResultSet.getString("id");
final List<Object> parameters = new ArrayList<Object>();
parameters.add(null);
parameters.add(id);
myfunction(parameters);
}
我可以在这里看到两种可以尝试的方法:
您可以检查所有查询是否至少返回一行。 也许有一个您传递给查询的ID不能验证WHERE子句的任何结果。 您可以通过在类似next
的条件语句中放置对next
的调用来进行检查
if(idresultSet.next()) id = idResultSet.getString("id");
另外,也许您应该在执行查询后尝试将光标置于第一行(只是为了确保)。 喜欢
ResultSet idResultSet = outid.executeQuery(); idResultSet.first(); idResultSet.next();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.