从ResultSet java中选择记录



我在Java中有一个长查询,它放在结果集中并由executeQuery(string)方法执行。现在我需要遍历这个结果集,查询结果集中的每条记录(get_linked_OrgTickets方法包含此查询),并仅输出那些从ResultSet返回Vector linkedToTicket中的内容的行。我可以遍历这个ResultSet并将所述行复制到另一个结果集,或者删除不从ResultSet输出的行吗?有别的解决办法吗?

if (linked == J.LINKED_TO_ORG){
    while (rs.next()){
           Vector linkedToTicket = Ticket.get_linked_OrgTickets(con, rs.getInt(Ticket.FLD_ID)); 
           if (linkedToTicket != null)
           {                                
          // if there are linked tickets in the result set, output them only
        }
    }
}

*EDIT: *这些子查询不能与主查询集成。要做到这一点的唯一方法是执行主查询一次不包含它,第二次包含它,这将是效率太低。ResultSet类似乎不包含删除行而不影响数据库或"手动"构建ResultSet的方法。

请帮忙!

也许您可以操作结果集中的游标并获取正确的数据。像这样

Statement stmt = connection.createStatement(
            ResultSet.TYPE_SCROLL_SENSITIVE, 
            ResultSet.CONCUR_UPDATABLE);
ResultSet resultSet = stmt.executeQuery(
            " SELECT col1 FROM tablename");
rs.absolute(5); // moves the cursor to the fifth row of rs
String field = rs.getString("MY_FIELD");
但是,请注意不要调用updaterow,因为您将修改底层数据行

最新更新