DuanJiaNing_
2017-04-24 14:17
采纳率: 0%
浏览 1.3k

SQLException After end of result set

samples[cc].setId(set.getInt(Samples.ID));这一句抛了SQL异常:After end of set。
一直找不到原因,不使用 OR 的时候却能正确执行!!!

     public Samples[] getSampleInfo(int[] ids) {
        Samples samples[] = new Samples[ids.length];
        Connection conn = DBMalwareHelper.getConnection();
        StringBuilder builder = new StringBuilder();
        Arrays.stream(ids).filter(i -> i != ids[0]).forEach(i -> builder.append(" OR " + Samples.ID + " = " + i));
        String sql = "SELECT * FROM " + DBMalwareHelper.TABLE_SAMPLES + " WHERE " + Samples.ID + " = " + ids[0] + builder.toString();
        Statement statement = null;
        ResultSet set = null;
        try {
            statement = conn.createStatement();
            set = statement.executeQuery(sql);
            int cc = 0;

            while (set.next()) {
                samples[cc].setId(set.getInt(Samples.ID));
                samples[cc].setPackageName(set.getString(Samples.PACKAGE));
                samples[cc].setType(set.getString(Samples.TYPE));
                samples[cc].setPath(set.getString(Samples.PATH));
                cc++;
            }

            return samples;

        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        } finally {
            DBUtil.closeSetStatConn(conn, set, statement);
        }
    }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • oyljerry 2017-04-24 14:28

    getSamplesInfo函数第一行后面,samples数组里面的元素还要new初始化。

    点赞 打赏 评论
  • blownewbee 2017-04-24 16:18
    点赞 打赏 评论
  • zjxriyuexing 2017-04-25 01:48

    循环语句有问题:应该这样:
    Samples sam = null;
    while (set.next()) {
    sam = new Samples();
    sam.setId(set.getInt(Samples.ID));
    sam.setPackageName(set.getString(Samples.PACKAGE));
    sam.setType(set.getString(Samples.TYPE));
    sam.setPath(set.getString(Samples.PATH));
    samples[cc] = sam;
    cc++;
    }

    点赞 打赏 评论
  • my_name_nb 2017-04-25 01:37

    是因为你引用了多个结果集的时候,由于前一个结果集已经和数据库关闭,你又引用 ,那当然找到的结果为Null.

    点赞 打赏 评论

相关推荐 更多相似问题