请问如何将ResultSet rs结果集中的数据存进数组

usaspy 2003-09-12 09:52:38
我是这样做的:

<%!
int i = 0;
String[] User_name;
String[] ID_card;
String[] House;
%>

.
.
.
ResultSet rs = workM.executeQuery(str);
.
.
while (rs.next()){
i++;
User_name[i] = new String(rs.getString("User_name").getBytes("ISO-8859-1"),"GB2312");
ID_card[i] = rs.getString("ID_card");
House[i] = rs.getString("House");

}


结果出错,显示如下:
Error 500--Internal Server Error
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request.



...全文
539 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
seafo 2003-09-12
  • 打赏
  • 举报
回复
toArray的使用
ArrayList al =new ArrayList();
al.add("a");
al.add("b");
al.add("c");
String[] strs=(String[]) al.toArray(new String[al.size()]);
for(int i=0;i<strs.length;i++){
out.print(strs[i]+"<br/>");
}
duwucna 2003-09-12
  • 打赏
  • 举报
回复
谢谢:laodoudou
laodoudou 2003-09-12
  • 打赏
  • 举报
回复
我建议你不要使用getArray方法,这与面向对象的观念是背道而驰的,你是不是可以将每条数据看作是一个对象,他们的属性就是字段,都有get和set方法。当你从记录集中每取一条记录,就生成一个新对象并赋值,然后放入ArrayList中。这样,虽然有一点点烦,但无论从逻辑上还是从易读性都不错。
usaspy 2003-09-12
  • 打赏
  • 举报
回复
怎么用getArray方法???
usaspy 2003-09-12
  • 打赏
  • 举报
回复
to: dyf2001(西风) fft123()
你的方法怎么用,举个例子好吗
dyf2001 2003-09-12
  • 打赏
  • 举报
回复
是呀,直接getArray(int fieldIndex)
getArray(String fieldName)
YLLi2008 2003-09-12
  • 打赏
  • 举报
回复
User_name.toArray() 返回的是Object[]
你必须先执行这一步:
Object[] user_name = User_name.toArray();

然后才能
out.print(user_name[0]);
laodoudou 2003-09-12
  • 打赏
  • 举报
回复
由于只能toArray成Object数组,所以使用数组的时候要强行转换成需要的对象类型。
usaspy 2003-09-12
  • 打赏
  • 举报
回复
谢谢各位,我懂了
usaspy 2003-09-12
  • 打赏
  • 举报
回复
我已经 User_name.toArray();转换成数组了但是用out.print(User_name[1]);不能取出值

out.print(User_name);可以得到结果[zhanghong, liuhong]
duwucna 2003-09-12
  • 打赏
  • 举报
回复
TO:laodoudou(xiaodoudou) (

请给个你说的例子,谢啦..
laodoudou 2003-09-12
  • 打赏
  • 举报
回复
是这样转换为数组的:
ArrayList a = new ArrayList();
Object[] b = a.toArray();
String c = (String)b[1];
这只是大概意思。祝你顺利。
laodoudou 2003-09-12
  • 打赏
  • 举报
回复
是这样转换为数组的:
ArrayList a = new ArrayList();
Object[] b = a.toArray();
String c = (String)b[1];
这只是大概意思。祝你顺利。
YLLi2008 2003-09-12
  • 打赏
  • 举报
回复
Object[] str = al.toArray();

for(int i = 0; i < str.length; i++){
System.out.println(str[i]);
}

fft123 2003-09-12
  • 打赏
  • 举报
回复
ResultSet有个getArray方法
可以直接转成相应的数组

Array getArray(int i)
Retrieves the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language.

Array getArray(String colName)
Retrieves the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language
usaspy 2003-09-12
  • 打赏
  • 举报
回复
为何要这么复杂,难道就不能如我问题所做那样直接把记录集存到数组中去
laodoudou 2003-09-12
  • 打赏
  • 举报
回复
你如果确实想转化为数组,建议先使用ArrayList再用toArray()方法转换为数组。
你如果只想遍历,直接用Array就行了(Vector已经可以认为被淘汰了,除非你维护旧的程序,否则不要用),但遍历Array时,强烈建议你不要使用for(int i = 0; i < User_name.size(); i++) {String user_name = (String)User_name.get(i);}这种方法,此方法极不规范,不符合Array的设计原则,将Array的优点抹杀。建议用Iterator.然后用Iterator进行遍历。
zeeler 2003-09-12
  • 打赏
  • 举报
回复
Vector都不知道,也干出来混,厉害 :)-
usaspy 2003-09-12
  • 打赏
  • 举报
回复
如何把它转成数组,给个例子把
usaspy 2003-09-12
  • 打赏
  • 举报
回复
好象不行嘛!!?
<%!
ArrayList User_name = new ArrayList();
%>

while (rs.next()){

User_name.add(new String(rs.getString("User_name").getBytes("ISO-8859-1"),"GB2312"));
}

User_name.toArray();
out.print(User_name[1]);


如果转换成数组了的话,应该有User_name[1]啊

ERROR---------出错如下
C:\bea\user_projects\119\Alert\.wlnotdelete\DefaultWebApp_DefaultWebApp_7329623\jsp_servlet\__w_input_waterdata.java:140: array required, but java.util.ArrayList found
probably occurred due to an error in /W_input_waterdata.jsp line 44:
out.print(User_name[1]);

加载更多回复(8)

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧