首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

JSP从数据库中取数据,结果取出来的都是最后一条的重复数据,这是咋回事

2012-04-15 
JSP从数据库中取数据,结果取出来的都是最后一条的重复数据,这是怎么回事我在JSP上写了下面这些代码从数据

JSP从数据库中取数据,结果取出来的都是最后一条的重复数据,这是怎么回事
我在JSP上写了下面这些代码从数据库中取出数据并显示,可是结果是,假如我数据库中有50条信息,它给我显示出来的50条信息都是重复最后一条数据的,下面这个代码应该怎么改写呢,我看不大懂for循环是做什么的,麻烦帮我解释下呀





<%List<ReportProcess> rp=new ArrayList<ReportProcess>();
ReportProcess rps=new ReportProcess();
String id=(String)session.getAttribute("id");
ResultSet rs=null;
Connection con=null;
DBConnection dbcon=new DBConnection();
try{
con=dbcon.getConnection();
dbcon.setSql("rprocess");
prst=con.prepareStatement(dbcon.getSql());
prst.setString(1,id);
rs=prst.executeQuery();
while(rs.next()){
rps.initFormRs(rs);
rp.add(rps);
}
}
catch (SQLException e)
{}finally{
dbcon.closedb(rs,con);
}
for(Iterator<ReportProcess> it = rp.iterator();it.hasNext(); ){
rps = it.next();
%>
<tr>
<td><input type="text" name="xuehao" value="<%=rps.getId()%>"></td>
<td><input type="text" name="riqi" value="<%=rps.getRdate()%>"></td>
<td><input type="text" name="xuesheng" value="<%=rps.getSname()%>"></td>
<th><input type="text" name="jiaoshi" value="<%=rps.getTname()%>"></td>
<td><input type="text" name="jidu" size=100 value="<%=rps.getPosition()%>"></td>
</tr>
<%
}%>

[解决办法]
rps.initFormRs(rs); 和 sql 发出来看看

[解决办法]
for(ReportProcess r:rp){
r = it.next();
%>
<tr>
<td><input type="text" name="xuehao" value="<%=r.getId()%>"></td>
<td><input type="text" name="riqi" value="<%=r.getRdate()%>"></td>
<td><input type="text" name="xuesheng" value="<%=r.getSname()%>"></td>
<th><input type="text" name="jiaoshi" value="<%=r.getTname()%>"></td>
<td><input type="text" name="jidu" size=100 value="<%=r.getPosition()%>"></td>
</tr>
<%
}%> 

你把你的for循环换成这个看行不行。
[解决办法]
你的rps实例在while(rs.next())循环外面也就是说只会rps所引用的实例只会是最后一个。
建议:
while(rs.next()){
ReportProcess rps=new ReportProcess();
rps.initFormRs(rs);
rp.add(rps);
}

热点排行