List resultList = new ArrayList(); Map map = new HashMap(); while(rs.next()){ String userid = rs.getString("userid"); String staffName = rs.getString("staffname"); String busName = rs.getString("bus_name"); String loginId = rs.getString("loginid"); Long status = rs.getLong("status"); map.put("userid", userid); map.put("staffName",staffName); map.put("busName", busName); map.put("loginId", loginId); map.put("status", status); resultList.add(map); }
上面這段代碼最后resultList的map元素都是相同的
解決辦法 外面的map先不要賦值,while循環的時候每次都是同一個map,在循環里面賦值,每次都是一個新的map集合,就不會覆蓋前面的值
List resultList = new ArrayList(); Map map = null; while(rs.next()){ map = new HashMap(); String userid = rs.getString("userid"); String staffName = rs.getString("staffname"); String busName = rs.getString("bus_name"); String loginId = rs.getString("loginid"); Long status = rs.getLong("status"); map.put("userid", userid); map.put("staffName",staffName); map.put("busName", busName); map.put("loginId", loginId); map.put("status", status); resultList.add(map); }
