一个奇怪的问题
这个是我的javabean中的一段代码,是取出数据库记录的方法.
public ArrayList getUser(){
ArrayList al=new ArrayList();
try{
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery( "select * from user1 order by name desc ");
while(rs.next()){
User user=new User();
user.setName(rs.getString( "name "));
user.setPassWord(rs.getString( "pa "));
al.add(user);
}
}catch(Exception e){
e.printStackTrace();
}
return al;
}
public static void main(String args[]){
Db d=new Db();
Iterator it=d.getUser().iterator();
while(it.hasNext()){
User user=(User)it.next();
System.out.println(user.getName());
}
}
}
一下是一个jsp:使用上面的javabean
<body>
<jsp:useBean id= "db " class= "message.Db "> </jsp:useBean>
<%
Iterator ir=db.getUser().iterator();
while(ir.hasNext()){
message.User user=(message.User)ir.next();
out.println(user.getName());
out.println(user.getPassWord());
}
%>
<a href= "MyJsp.jsp "> MyJsp.jsp </a>
</body>
页面情况为,比如数据库有10条记录,错误的把某一条循环显示了10次.
而我在上面的javabean中使用main()方法验证时,却可以输出10条正确的记录,而不是和JSP中一样把某条显示10次.
高手们帮忙看看,谢谢了.
[解决办法]
我也觉得奇怪
加个user = null看看
[解决办法]
jsp
ArrayList objAL = db.getUser();
for(int i=0;i <objAL;i++)
{
message.User user = (message.User)objAL.get(i);
out.println(user.getName());
out.println(user.getPassWord());
}