天天看點

資料庫分頁技術

1、資料庫分頁技術的基本思想:

    (1)、确定記錄跨度。即确定每頁顯示資料的條數。    

    (2)、擷取記錄總數。即擷取要顯示在頁面中的總記錄數。其目的是依據總記錄數來技術得到總頁數。

    (3)、确定分頁後的總頁數。依據公式“總記錄數/跨度”計算分頁後的總頁數。要注意的是:如果總頁數有餘數,要去掉餘數,将總頁數加1。修改為:(總記錄數-1)/跨度+1

    (4)、根據目前頁數顯示資料。注意:如果該頁數小于1,則使其等于1;如果頁數大于最大頁數,則使其等于最大頁數。

    (5)、通過For循環語句分頁顯示資料。

2、使用标準的SQL語句實作資料分頁:

    (1)、擷取前n條資料:

            SELECT TOP n[PERCENT] *

            FROM TABLE

            WHERE ......

            ORDER BY......

    (2)、擷取分頁資料:

            在java中通過參數來擷取分頁資料:

            String sql="select top "+pageSize+"* from table where id not in (select top"+(page-1)*pageSize+" id from table order by id ASC ) order by id ASC";

            其中:

                        pageSize:英語指定分頁後每頁顯示的資料

                        page:用于指定目前頁數

3、MySQL資料庫分頁:

        MySQL資料庫提供了LIMIT函數課一友善實作分頁:

            SELECT [DISTINCT|UNIQUE]( *,columname [as alias])

            FROM TABLE

            WHERE ......

            ORDER BY......

            LIMIT [offset],rows

            eg:

                   String strSql = "select * from tb_orderform order by id limit "+(page-1)*pagesize+","+pagesize+""; 

4、Hibernate分頁:

        Hibernate對分頁也提供了很好的支援,可以利用HQL和QBC檢索方式實作資料分頁。

        eg:從索引位置3開始的6條記錄。

                 (1)、HQL方式:

                            Query query=session.createQuery("from User");

                            query.setFirstResult(3);

                            query.setMaxResult(6);

                 (2)、QBC方式:

                            Criteria criteria=session.createCriteria(User.class);

                            createria.setFirstResult(3);

                            createria.setMaxResult(6);