比如说几个表关联查询,只返回了其中几列,如何实现返回记录列有多少个?java中,假如有这么一个查询结果:存储过程返回记录
CallableStatement cst = null; 
cst.registerOutParameter(2, OracleTypes.CURSOR);
ResultSet rs = (ResultSet) stmt.getObject(2);
怎么知道rs有多少列呢请教各位了

解决方案 »

  1.   

    以下为网上搜索所得,以前用过c#,不太懂java
    getRow
    int getRow()
               throws SQLException检索当前行编号。第一行为 1 号,第二行为 2 号,依此类推。 返回:
    当前行的编号;如果不存在当前行,则返回 0 last
    boolean last()
                 throws SQLException将指针移动到此 ResultSet 对象的最后一行。 返回:
    如果指针位于有效行,则返回 true;如果结果集中不存在任何行,则返回 false 
    先用last();再用getRow()可以得到记录总数,前提是有数据在resultSet中 
      

  2.   

    谢谢你啊,不过我问的是列有多少个,因为我也不清楚返回多少行多少列,但每一行的列是固定的,主要代码大概是这样的,col_count是列的个数
    List<List<Object>> listarr = new ArrayList<List<Object>>();
    while(rs.next()) {
    List<Object> list = new ArrayList<Object>();
      for(int i=0;i<col_count;i++){
           list.add(rs.getString(i));
       }
        listarr.add(list);
    }
      

  3.   

    rs.getMetaData().getColumnCount();可以得到列的个数
    rs.getMetaData().getColumnName();得到列名.