我想获取数组常量中显示的每个no的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);
}
答案 0 :(得分:0)
我可以在这里看到你可能尝试的两件事:
您可以检查所有查询是否至少返回一行。也许您传递给查询的ID不会为任何结果验证WHERE子句。您可以通过将调用next
置于条件语句(如
if(idresultSet.next()) id = idResultSet.getString("id");
此外,您可能应该在执行查询后尝试将光标放在第一行(只是为了确定)。像
ResultSet idResultSet = outid.executeQuery();
idResultSet.first();
idResultSet.next();