昨晚弄一个Java读数据库写入Excle文件小程序,发现从数据库中读出来的数全为空,原来是犯了常识性的错误,代码如下:
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
for (String str : columns) {
result.put(str, "" + rs.getString(str));
System.out.println(str + ":" + rs.getString(str));
}
resultSets.add(result);
result.clear();
}
rs.close();
在读出结果后存入一个hashMap result中,把resultadd到resultSet中,后者是一个List,为了不让之前结果干扰到HashMap,突发奇想用了Clear,结果在后面的读取中resultSet全空,但是长度竟然是对的。。。。
小错误,还是基础不够扎实,对Java了解太少,修改了一下,编程新建一个HashMap就ok了,没看资料,说明List添加进去的是引用而不是值复制。
同样的,java中按值传递还是按引用传递的问题需要留意。