用上次的方法不行吗?
为什么用一个statement呢?

解决方案 »

  1.   

    你第二次用同一个Statement时,第一次的结果集会被关闭的!用两个Statement就可以了。
      

  2.   

    关注一下,我是多定义了一个表示层次等级的字段,然后用递归从数据库里查出来。
    然后生成xml。
    例如:<?xml version="1.0"?>
    <subcol>
      <col>
        <colno>0</colno>
        <pno>0</pno>
        <level>0</level>
        <subcol>
          <col>
            <colno>1</colno>
            <pno>0</pno>
            <level>1</level>
            <subcol>
              <col>
                <colno>3</colno>
                <pno>1</pno>
                <level>2</level>
              </col>
            </subcol>
          </col>
          <col>
            <colno>2</colno>
            <pno>0</pno>
            <level>1</level>
          </col>
          <col>
            <colno>5</colno>
            <pno>0</pno>
            <level>1</level>
          </col>
        </subcol>
      </col>
    </subcol>
      

  3.   

    jscsqb(大漠沙如雪) ,我原来是觉的没有必要要2个statement,不过针对这用javabean是不是要public void createStmt() 改为返回createStmt的才行? 
    Eraserpro :谢谢 ,你这么一解释我就明白了,wellsoon: 谢谢你,不过我不是很明白你的用法.能否给段代码.谢谢!
      

  4.   

    rs1=myLinkDb.execute(sql1);
        你这句话不是和上次那个问题一样吗?都是用了同一个Statement。
      

  5.   

    建议看看STATEMENT的JDK API说明。
      

  6.   

    javabean改动createStmt和execute方法:public Statement createStmt(){
    try{
    return dbConn.createStatement();
    }
    catch(Exception e) {
    return null;
    }
    }public ResultSet execute(Statement stmt,String sql)throws SQLException{
    if (stmt != null) {
    this.rs=stmt.executeQuery(sql);
    return this.rs;
    } else
    return null;
    }jsp改为:<%@ page contentType="text/html; charset=gb2312" %>
    <%@ page language="java" %>
    <%@ page import="java.sql.*"%>
    <jsp:useBean id="myLinkDb" scope="application" class="myblessu.DB"/>
    <%
    Statement stmt,stmt1;
    ResultSet  rs  =null;
    ResultSet  rs1  =null;
    int id;String sql="select * from abc where father=0";stmt=myLinkDb.createStmt();
    stmt1=myLinkDb.createStmt();
    try{
    rs=myLinkDb.execute(stmt,sql);
    while(rs.next()){
    id=rs.getInt(1);

    out.print(id+":");
    out.print(rs.getString(2)+"<br>");

    String sql1="select * from abc where father="+id;
    rs1=myLinkDb.execute(stmt1,sql1);
    while(rs1.next()){
    out.print("&nbsp;&nbsp;&nbsp;&nbsp;"+rs1.getString(1)+":");
    out.print(rs1.getString(2)+"<br>");
    }

    }
    }catch(SQLException e){}%>
      

  7.   

    谢谢,问题解决了,谢谢 myblessu(寒飞) 的代码!本题是给jscsqb补分的,所以我另开贴再给myblessu,Eraserpro,jscsqb加分.