ResultSet rs=stmt.executeQuery("select count(*) form form1 where name='"+age[i]+"'");
我想查询不同年龄人的个数,要是直接在sql语句中写出具体年龄将会有很多条ResultSet语句,而每个ResultSet都要给它取一个不同的名字,否则就会报错,这要是在年龄个数未知的情况下就更难以实现。
我设想用一个字符串数组来作为ResultSet的名字:
String[] rs_name=new String[i]  //i为事先查出的不同的年龄的个数
for(int j=0;j<i;j++){
   ResultSet rs_name[j]=stmt.executeQuery("select count(*) form form1 where name='"+age[j]+"'");
}
结果总是报错:rs_name[i]处少一个],不知道我这种方法是否可行,如果可行的话具体语句怎么写呢?如果不可行,那要怎样实现我所描述的功能呢?
请各位高手不吝赐教!感激不尽!

解决方案 »

  1.   

    把这段程序for(int j=0;j<i;j++){
       ResultSet rs_name[j]=stmt.executeQuery("select count(*) form form1 where name='"+age[j]+"'");
    }
    放到try...catch(){}里试一下.
      

  2.   

    String[] rs_name=new String[i] ???
    -------------------------------
    ResultSet[] rs_name=new ResultSet[i];
      

  3.   

    回:thinker  我的代码是在try{}...catch(){}里的
    回:zengcity 试一下你的方法,好用分都给你了 呵呵
      

  4.   

    为何不用GROUP BY?
    select name, count(*) form form1 group by name order by name
      

  5.   

    如果用group by 如何能知道它们之间的对应关系呢
    比如说:20,20,20,21,21
    查询结果是3,2
    怎么能知道哪个是三个,哪个是两个呢
    前提是我们并不知道各个年龄在表中的顺序
      

  6.   

    还有,对于ResultSet[]中的数据如何取出呢
    对于ResultSet[]类型的数据rs:
    rs[0].getString();
    为什么总是报jdbc错说 Object has been closed.
    那位高手指点一下
      

  7.   

    select   age,   count(*)   form   table1   group   by   age