怎样从ResultSet中读出有条件限制的某几行?
比如:现在我的resultset中10行数据,它们的列分别是id,word,length;我要从中提取出length=3的数据,该怎么来操做啊?

解决方案 »

  1.   

    你为什么不在sql中就限制length=3呢?
      

  2.   


    ArrayList ar =new ArrayList();
    while(rs.next){
       int len = rs.getInteger(3);   
       if(len==3){
           id = rs.getXXX(1);
           word= rs.getXXX(2);
           length= rs.getXXX(3);
          //再这条记录封装成一个对象加到集合中去。
       }   
    }
      

  3.   

    是这样的,我先用了sql语句
    ConDb dbConn = new ConDb();//获取数据连接
           stmt = conn.createStatement();
           rs = stmt.executeQuery(strSQL);//执行查询语句
    把数据从入了rs中,
    现在有要对rs中的某些特定数据进行操作,不知道该怎么把他们取出来!如果在用sql语句,那re集中又没有表?不知道该怎么办?
      

  4.   

    sql="select * from table where length=3"
      

  5.   


    Connection con = null;//自己实例化
            try {
                Statement stmt = con.createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_UPDATABLE);
                ResultSet rs = stmt.executeQuery("select * from zhao");
                rs.absolute(3);
                String s = rs.getString("id");
            } catch (SQLException e) {
                e.printStackTrace();
            }
      

  6.   

    为什么不考虑在查询数据库的时候就把条件加进去呢?
    这样ResultSet中的数据就全是符合条件。非要在ResultSet中解决的话,我想的到的办法就是循环一条条判断了。
      

  7.   

    xxx a = new xxx();
    int i=0;
    while(rs.next){ 
       i++;
       if(i==3){ 
           a.id = rs.getXXX(1); 
           a.word= rs.getXXX(2); 
           a.length= rs.getXXX(3); 
           break;
       }
    return a;
      

  8.   


     FilteredRowSet frs = new FilteredRowSetImpl();
         frs.populate(rs);
     
         Range name = new Range("Alpha", "Bravo", "columnName");
         frs.setFilter(name);
     
         frs.next()修改一下就可以了
      

  9.   

    代码这样写没多大意义啊,反正都从数据库读到rs对象了,就算是做分页,下一次在查那不又是另一个rs对象。。
      

  10.   

    如果楼主是要做分页,可以考虑从数据库角度考虑,每次只取部分值
    用ms-sql可以用select top 10 from where id>** and 你的其他条件,
    这样可以从某个位置只取10条,oracle可以考虑用rownum
      

  11.   

    select * from myTable where length=3
      

  12.   

    其实你可以用SQL直接查到像要的数据。
    或者在while(rs.next){ }中做判断。
    或者在 while(rs.next){ }全都取出来放到List中,在List中过滤。