繁体   English   中英

如何在Java中的for循环内使用next()获取下一个结果集

[英]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);
    }

我可以在这里看到两种可以尝试的方法:

  1. 您可以检查所有查询是否至少返回一行。 也许有一个您传递给查询的ID不能验证WHERE子句的任何结果。 您可以通过在类似next的条件语句中放置对next的调用来进行检查

    if(idresultSet.next()) id = idResultSet.getString("id");

  2. 另外,也许您应该在执行查询后尝试将光标置于第一行(只是为了确保)。 喜欢

    ResultSet idResultSet = outid.executeQuery(); idResultSet.first(); idResultSet.next();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM