下面是我的表里面数据的显示页面lookwater.jsp的部分代码:
{0} String a=session.getAttribute("residents_num").toString();
WegDAOImpl wegg=new WegDAOImpl();
List<WEG> weg = wegg.queryNewsByNum(a);
%>
<br/>
<table border="0" align="center" width="600px" >
<tr>
<td>月份</td>
<td>
水
</td>
<td>
电
</td>
<td>气</td>
</tr>
<%
for (int i = 0; i < weg.size(); i++) {
WEG weg2 = weg.get(i);
%>
<tr>
<td>
<%=weg2.getId() %>
</td>
<td>
<%=weg2.getWEGMonth() %>
</td>
<td>
<%=weg2.getWater()%>
</td>
<td>
<%=weg2.getElectric()%>
</td>
<td>
<%=weg2.getGas()%>
</td>
</tr> <%
}
%>
</table>
代码中的 List<WEG> weg = wegg.queryNewsByNum(a);
queryNewsByNum(a)能够正确将表中的数据封装到List<WEG> 对象中(因为我测试时通过while(rs.next()){
weg.setId(rs.getInt("id"))能正确看到其所有的数据正确输出),我数据表里面有5条数据,但我在显示页面lookwater.jsp中却只能输出最新插入的数据,而且重复5次输出最新插入的数据。
高手,这是为什么?
{0} String a=session.getAttribute("residents_num").toString();
WegDAOImpl wegg=new WegDAOImpl();
List<WEG> weg = wegg.queryNewsByNum(a);
%>
<br/>
<table border="0" align="center" width="600px" >
<tr>
<td>月份</td>
<td>
水
</td>
<td>
电
</td>
<td>气</td>
</tr>
<%
for (int i = 0; i < weg.size(); i++) {
WEG weg2 = weg.get(i);
%>
<tr>
<td>
<%=weg2.getId() %>
</td>
<td>
<%=weg2.getWEGMonth() %>
</td>
<td>
<%=weg2.getWater()%>
</td>
<td>
<%=weg2.getElectric()%>
</td>
<td>
<%=weg2.getGas()%>
</td>
</tr> <%
}
%>
</table>
代码中的 List<WEG> weg = wegg.queryNewsByNum(a);
queryNewsByNum(a)能够正确将表中的数据封装到List<WEG> 对象中(因为我测试时通过while(rs.next()){
weg.setId(rs.getInt("id"))能正确看到其所有的数据正确输出),我数据表里面有5条数据,但我在显示页面lookwater.jsp中却只能输出最新插入的数据,而且重复5次输出最新插入的数据。
高手,这是为什么?
WEG e = null;
while(rs.next()){ e = new WEG();//应该在循环里创建对象
}
则DAO里的查询方法queryNewsByNum可能有问题。
<% for (int i = 0; i < weg.size(); i++) {
out.println("Id="+weg.get(i).getId()+"Month="+weg.get(i).getWEGMonth()
+"Water="+weg.get(i).getWater()+"Gas="+weg.get(i).getGas());
}
%>
这位大哥已经说清楚了。你lz你的封装list的代码出问题,没有在循环里new WEG
之后遍历weg,看看list中的五条记录是否重复
楼主看不看weg这个list里面是不是有5条重复的数据,如果有的话,那可能就是你前面实现dao层有问题。
看这代代码没什么错误的
WEG e = new WEG();
while(rs.next()){ //每次都是使用e来存数据,所以才会导致所有的记录都是最后的那条结果,因为只有一个WEG对像.
}实际应该是WEG e = null;
while(rs.next()){ e = new WEG();//每次创建新对象.
}
呵呵,
顶了good luck