【发布时间】:2015-03-27 16:19:38
【问题描述】:
我正在尝试使用我的数据库中的结果集填充列表。问题是,一旦退出 while() 循环,列表就只显示从 db 恢复的最后一个结果。代码:
public List<String[]> some_function(){
List<String[]> trs = new ArrayList<String[]>();
Connection conn = conectar_post("","","","");
Statement st = null;
ResultSet rs = null;
ResultSetMetaData rmd = null;
String sqls = "";
sqls = "SELECT col1, col2 FROM table1 LIMIT 4";
try{
st = conn.createStatement();
rs = st.executeQuery(sqls);
rmd = rs.getMetaData();
int i=0, ncol = 0, w=0;
ncol = rmd.getColumnCount()+1;
String[] line = new String[ncol];
while(rs.next()){
for(i=1;i<ncol;i++){
line[i] = rs.getString(i);
}
trs.add(line);
System.out.println(trs.get(w)[i-2]);
w++;
}
System.out.println("> "+trs.get(1)[1]);
System.out.println("> "+trs.get(2)[1]);
}
catch (SQLException e) { e.printStackTrace(); }
return trs;
}
输出:
244447
244448
244449
352712
> 352712
> 352712
我缺少什么?
【问题讨论】:
-
trs.add(line);始终是相同的String[]对象。 -
你做适当的调试了吗?
-
你也应该把它提交给 codereview.stackexchange.com,这段代码真的很难读懂……
标签: java list multidimensional-array parameter-passing