小弟初学jdbc,想把ResultSet中查询的每条记录存入一个字符串数组中,代码如下
String ss[]={};
int i=0
while(rs.next()) {
ss[i]=String.valueOf(rs.getObject(1));
i++;
}
这段总是提示数组越界异常呢?想请教一下各位,多谢了!

解决方案 »

  1.   

    问题补充一下,
    ResultSet rs.getObject(1)的那列数据存的是varchar2(20)类型的数据
      

  2.   

    数组必须明确声明长度。不会自动变长度。
    String ss[]={};
    则ss.length() ==0不确定长度,可以用集合类,例如List,然后调用List的toArray() or toArray(T[]) 方法转为数组。
      

  3.   

    那请问要如何把ps = conn.prepareStatement("select count(*) from guiuser");
                ps.executeQuery();
    这里面的行数取出来啊?
      

  4.   

    这个越界与你的字符串大小无关,是因为你声明字符串数组的时候就给了个零的初始化。
    如果为了方便,用楼上的方法可行。
    如果不想用楼上的,用游标也可以,用游标得到行数,指定长度初始化String数组,就可以了。具体操作API:
    ResultSet的last()和getRow(),自己研究研究吧。
      

  5.   

    用这几条语句:    String sql="SELECT * FROM "+tablename;
    resultSet=statement.executeQuery(sql);
    resultSet.last();
    totalRows=resultSet.getRow();totalRows 就是总行数,ss=new String[totalRows]
    就行。