日期:2014-05-20  浏览次数:20881 次

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

------解决方案--------------------
数组必须明确声明长度。不会自动变长度。
String ss[]={};
则ss.length() ==0

不确定长度,可以用集合类,例如List,然后调用List的toArray() or toArray(T[]) 方法转为数组。
------解决方案--------------------
得需要知道有多少条记录, 好给数组定长度. 用那个长度确定数组ss 的长度。
加几条语句,把行数求出来。

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