多表查询出来的数据怎么分页最好 

解决方案 »

  1.   

    public List findAllBookByPage(int page) {
    List list = new ArrayList();
    conn = this.getConn();
    int rows = 0;
    if(page > 1){
    rows = (page-1)*5;
    }
    String sql = "select top 5 * from books inner join bookType on books.ids=bookType.id where ids not in (select top "+rows+" ids from books inner join bookType on books.ids=bookType.id order by ids asc) order by ids asc";
    try {
    pstmt = conn.prepareStatement(sql);
    rs = pstmt.executeQuery();
    while(rs.next()){
    int ids = rs.getInt(1);
    String bookName = rs.getString(2);
    String author = rs.getString(3);
    String descs = rs.getString(4);
    int bid = rs.getInt(5);
    Book book = new Book(ids,bookName,author,descs,bid);
    list.add(book);
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    this.closeAll(conn, pstmt, rs);
    }
    return list;
    }
      

  2.   

    查询的时候用LEFT JOIN效率最高!