可以这样子处理select语句的搜查结果吗,是个数集.MessageA类里是些set和get的方法.下面这个语段在另一个类,然后在一个JSP页面调用C.
不太理解对象msg为什么可以放在add里rs = stmt.executeQuery(sql);
Collection c = new ArrayList();
MessageA msg = null;
while (rs.next()) {
msg = new MessageA();
msg.seta_id(rs.getInt("A_ID"));
msg.seta_title(rs.getString("A_TITLE"));
msg.seta_content(rs.getString("A_CONTENT"));
msg.setAuthor(rs.getString("AUTHOR"));
msg.setCompose_date(rs.getDate("COMPOSE_DATE"));
c.add(msg);
msg = null;
}
return c;

解决方案 »

  1.   

    c是一个集合,可以存储任意的Object
      

  2.   

    但是要的是select的结果啊,这样子把一个对象放进去有什么作用啊???
    我运行后C总是空的
      

  3.   

    当然可以,在while (rs.next()) {}中生成MessageA类的对象msg ,并把每条数据的相应字段存放到msg 的相应属性中,最后把该对象,放到Collection 中,那么Collection 中就存放了数据集对应的对象列,这样,以后要用这些纪录时可以直接从Collection 中取出这些对象列,再用这个对象的getXXX()方法获取数据。
      

  4.   

    你是怎么从Collection 中取对象的?
      

  5.   

    你是怎么从Collection 中取对象的?
      

  6.   

    我先在第一个JSP页面写下这个,getAllMessages是上面那个代码所在的方法
    getallAticle mgr = new getallAticle();
    Collection c = null; 
    if (page == null) {
    c = mgr.getAllMessages(pagesize, 1,usernameS);

    request.setAttribute("totalPageNum",new Integer(totalPageNum));
    request.setAttribute("c", c);然后转到第二个JSP页面,就是要显示查询结果的页面
    <%if (request.getAttribute("c") == null) {%>
    <tr>
    <td width="" 75%"" colspan=5 bgcolor="#FCFCFC" align=center>还没有任何留言。</td>
    </tr>
    <%} else {
    Collection c = (Collection) request.getAttribute("c");
    if (c == null) {%>
    <tr>
    <td width="" 75%"" colspan=5 bgcolor="#FCFCFC" align=center>还shi  没有任何留言。</td>
    </tr>
    <%} else {
    int totalPageNum = ((Integer) (request.getAttribute("totalPageNum"))).intValue();
    int currentPage = 1;
    if (request.getParameter("page") != null) {
    currentPage = Integer.parseInt(request.getParameter("page"));
    }
    Iterator iterator = c.iterator();
    while (iterator.hasNext()) {
    MessageA msg = (MessageA) iterator.next();%>但不管怎么运行,结果都"还没有任何留言"也就是说在第一个判断已经得出C==NULL
      

  7.   

    请大家帮帮我,我第一次接触JSP,就为了做这么一个查询功能,我已经熬了两个通宵..但就是搜不到东西.....
      

  8.   

    Iterator it = c.iterator()
    while(it.hasNext()) {
        MessageA msg = (MessageA)it.next();
        msg.getXXX();
    }
    这用取试一下,不然就是你的库里没数据
      

  9.   

    在前一页你有没有request.setAttribute("collection",c);
      

  10.   

    </tr>
    <%if (request.getAttribute("c") == null) {%>
    <tr>
    <td width="" 75%"" colspan=5 bgcolor="#FCFCFC" align=center>还没有任何留言。</td>
    </tr>
    他都是运行到这步,request.getAttribute("c") == null.数据库没问题啊我把数据库连接贴出来大家帮我看看,数据库连接也设置在getAllMessage类
    public String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:/java/myblog.mdb";
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
    catch(java.lang.ClassNotFoundException e) {
    System.err.println("mydb(): " + e.getMessage());
    }
    Statement stmt = null;
    ResultSet rs = null;
    try {
    Connection conn = DriverManager.getConnection(url);
    stmt = conn.createStatement();
    // sql语句: 


    String sql = "select * from Article where AUTHOR='autho'( order by A_ID desc limit "
    + (page - 1) * pagesize + "," + pagesize;

    rs = stmt.executeQuery(sql);查询的author是在另一个页面调用这个方法时传过来的变量
      

  11.   

    你先在第一个jsp页,打印一下,看对象列是否存放进Collection里拉
      

  12.   

    在前一页你有没有request.setAttribute("collection",c);是不是说getallmessages类里要加这句?
      

  13.   

    我不知道你的getallmessages类,但是只要把Collection里存进了值后,就可以request.setAttribute("collection",c);
      

  14.   

    再第一页面改上这样的打印代码,出错了,要怎么改?request.setAttribute("c", c);
    Iterator it = c.iterator();
    while(it.hasNext()) {
    MessageA ms = (MessageA)it.next();
    ms.geta_id();
    out.println(ms);
      

  15.   

    The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.lang.NullPointerException
    org.apache.jsp.searchblog_jsp._jspService(searchblog_jsp.java:69)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)