从ResultSet java中选择记录

时间:2013-05-24 09:39:08

标签: java sql resultset

我在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

        }
    }
}

* 编辑:* 这些子查询无法与主查询集成。唯一的方法是在没有这个的情况下执行一次主查询,第二次包含它,这样效率太低。 ResultSet类似乎不包含删除行而不影响数据库或“手动”构建ResultSet的方法。

请帮忙!

1 个答案:

答案 0 :(得分:1)

也许你可以操纵结果集中的光标并拾取正确的数据。像这样的东西

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,因为您将修改基础数据行