在JSP中如果用到PreparedStatement,如何在一个也面里面打开两个表并返回响应的结果集?
建立一个链接,能不能用两个PreparedStatement对象啊?如果不能用,我怎么样查询两句不同的SQL语句?
PreparedStatement pstmSelect=con.prepareStatement("SELECT * FROM choice WHERE cid=?");
PreparedStatement pstmSelect1=con1.prepareStatement("SELECT * FROM judge WHERE jid=?");
同时用了两个ResultSet对象:
…… 
pstmSelect.setString(1,Integer.toString(y));  
ResultSet rs=pstmSelect.executeQuery();
……
 pstmSelect1.setString(1,Integer.toString(z));
 ResultSet rs1=pstmSelect1.executeQuery();第一个结果集能返回我所需要的东西,但第二个就不行了,这是为什么?我该怎么办?

解决方案 »

  1.   

    没这样用过
    一般用完一个连接要关闭connection.clos可能你没关闭吧
      

  2.   

    建议将数据库操作放在Bean
    public class Bean{
     
     public List ****list(String year,String pid) throws SQLException {
      ArrayList list=null ;
        if (list != null)
          return list;
        list = new ArrayList();
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
          conn = ds.getConnection();
          String sql = " *******";
          pstmt = conn.prepareStatement(sql);
               rs = pstmt.executeQuery();
                while(rs.next())
              {
                }      close(rs);
          close(pstmt);
        } catch (SQLException e) {
          close(rs);
          close(pstmt);
          rollback(conn);
          e.printStackTrace();
        } finally {
            close(conn);
        }
          return list;
      }
     public List ***list(String year,String pid) throws SQLException {
      ArrayList list=null ;
        if (list != null)
          return list;
        list = new ArrayList();
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
          conn = ds.getConnection();
          String sql = " *******";
          pstmt = conn.prepareStatement(sql);
               rs = pstmt.executeQuery();
                while(rs.next())
              {
                }      close(rs);
          close(pstmt);
        } catch (SQLException e) {
          close(rs);
          close(pstmt);
          rollback(conn);
          e.printStackTrace();
        } finally {
            close(conn);
        }
          return list;
      }}