注册 登录
编程论坛 JavaScript论坛

请教一个jsp查询sqlsever数据库的问题:查询到的都是同样的数据,而且都是最后一行的数据,怎么回事?

发布于 2010-05-31 22:52, 844 次点击
这是jsp页面:
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'selectstu.jsp' starting page</title>
   
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  <body bgcolor="lightblue"><center>
    <jsp:useBean id="s" scope="session" class="wn.Student">
    <jsp:setProperty property="*"  name="s"/>
    </jsp:useBean>
   
   <center><font size="5" color="blue">查找学生信息如下:<br></center>
   <hr><table border="2">
   <tr>
   <td>学号&nbsp;</td>
   <td>姓名&nbsp;</td>
   <td>性别&nbsp;</td>
   <td>年龄&nbsp;</td>
   <td>班级&nbsp;</td>
    <td></td><td></td></tr>
   <%
     StudentOperation so=new StudentOperation();
     List list=so.select();
  try{
      int i=0;
      Iterator it=list.iterator();
      while(it.hasNext()){
      s=(Student)it.next();
      i++;
      //String sno=s.getSno();
      %>
      <tr>
   <td><%=s.getSno() %></td>
   <td><%=s.getName() %></td>
   <td><%=s.getSex() %></td>
   <td><%=s.getAge() %></td>
   <td><%=s.getClno() %></td>
   </tr>
  <%
   //s.print();
   }
  }
 catch(Exception e)
   {e.printStackTrace();} %>
 </table></center>
  </body>
</html>


这是方法类里的select方法:
public List select() throws Exception{
        Connection conn=ConnectionTest.getConnection();
        Statement stmt=conn.createStatement();
        String sql="select * from student";
        List list=new ArrayList();
        ResultSet rs=stmt.executeQuery(sql);
            while(rs.next()){
                 Student s=new Student();
                 s.setSno(rs.getString("sno"));
                 s.setName(rs.getString("name"));
                 s.setSex(rs.getString("sex"));
                 s.setAge(rs.getInt("age"));
                 s.setClno(rs.getString("clno"));
                 list.add(s);
                            }
            rs.close();
            return list;
    }//查询操作
查询到的都是最后一行的数据,而且有几行数据就有几行相同的,请问哪里出了问题?
谢谢啦!
6 回复
#2
cnfarer2010-06-01 07:51
while(it.hasNext()){
      s=(Student)it.next();
...

it在这个循环中变化了吗?我感觉能得到你所谓的结果(?)就算不错了!
#3
2010-06-01 15:06
那你说应该怎么办啊?你能给我改改吗?
#4
saitor2010-06-02 10:42
<jsp:useBean id="s" scope="session" class="wn.Student">
   
    </jsp:useBean>
<jsp:setProperty property="*"  name="s"/>
这句要写在外部吧,否则BEAN有实例的话不会调用SETPROPERTY
#5
2010-06-02 13:36
我试过了,还是不行,查到的数据都一样!
#6
saitor2010-06-02 13:57
是查到的都一样还是显示的都一样?
#7
2010-06-02 15:26
显示的都一样,比如数据库里有三条不同的数据,显示的是三条相同的最后一行的数据,怎么回事?
1