java怎样将数据库的查询结果保存到数组中 ?

ResultSet rs= query(sql) ;sql语句比如select name,password from usertable;怎样将查询结果存到两个数组name,password 中,不同的sql语句可能字段数和行数也不同,怎么编程实现对其他sql语句也适用?求具体例子!!

//客户信息列表
public List CustomerInformationList(Object o, int start ,int end){
List list = new ArrayList();
String cust[]= new String[5];
CRMCustomerForm ccform =(CRMCustomerForm) o;
cust[1] = ccform.getCustomno();
cust[2] = ccform.getCustomname();
cust[3] = String.valueOf(start);
cust[4] = String.valueOf(end);
DBConnection db=new DBConnection(jdbcTemplate);
ResultSet rs=db.getRsFromSp("PCK_CRM_CUSTOMER.P_QUERYCustomer", cust);
try {
while(rs.next()){
CRMCustomerForm cform = new CRMCustomerForm();
cform.setCustomno(rs.getString("CUSTOMER_NO"));
cform.setCustomname(rs.getString("CUSTOMER_NAME"));
cform.setSex(rs.getString("SEX"));
cform.setIdCard(rs.getString("ID_CARD"));
cform.setCallName(rs.getString("CALL_NAME"));
cform.setDuty(rs.getString("DUTY"));
cform.setPhonework(rs.getString("PHONE_WORK"));
cform.setWorkunit(rs.getString("WORK_UNIT"));
cform.setPhonehome(rs.getString("PHONE_HOME"));
cform.setAddresshome(rs.getString("ADDRESS_HOME"));
cform.setMoble(rs.getString("MOBILE"));
cform.setEmail(rs.getString("EMAIL"));
cform.setZipcode(rs.getString("ZIPCODE"));
cform.setBirthDay(rs.getString("BIRTH_DATE"));
cform.setMarriage(rs.getString("MARRIAGE"));
cform.setBloodtype(rs.getString("BLOOD_TYPE"));
cform.setBirthplace(rs.getString("BIRTH_PALCE"));
cform.setNation(rs.getString("NATION"));
cform.setEducation(rs.getString("EDUCATION"));
cform.setCustomtype(rs.getString("CUSTOMER_TYPE"));
cform.setTeamcode(rs.getString("TEAM_CODE"));
cform.setIsvaid(rs.getString("ISVALID"));
cform.setRecorddate(rs.getString("RECORD_DATE"));
cform.setSyssno(rs.getString("SYSSNO"));
cform.setSpellsearch(rs.getString("SPELLSEARCH"));
cform.setWubisearch(rs.getString("WUBISEARCH"));
cform.setRemaks(rs.getString("REMARKS"));
list.add(cform);
}
} catch (SQLException e) {
System.out.println("您所以调用的查询方法有问题。");
e.printStackTrace();
}
return list;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-08
首先要取到结果集的大小。也就是一共多少记录。如果没有直接的方法得到结果集的长度,那么只能通过两个集合来记录长度。这样就按这个大小去new两个数组。对rs进行迭代,取出每行的name,password,分别赋值给两个数组。
简要代码
while(rs.next){
list1.add(rs.getString(name的列号(从0开始)));
list2.add(rs.getString(password的列号(从0开始)));
}
这样两个集合里面分别存放的是name,password,再把它们倒到数组里就行了。追问

怎么把rsmd.getColumnName(i)获得的字段名作为数组的名称?也就是根据结果自动创建数组?

追答

这要用到一个方法。叫getRow()这个方法是取到结果集的列数。

本回答被提问者采纳
第2个回答  2011-10-08
ResultSet rs= query(sql) ;sql语句比如select name,password from usertable;怎样将查询结果存到两个数组name,password 中,不同的sql语句可能字段数和行数也不同,怎么编程实现对其他sql语句也适用?求具体例子!!
相似回答