隨筆-57  評論-202  文章-17  trackbacks-0
                數據分頁顯示,是很多B/S系統會遇到的問題。現在大多數主流數據庫都提供了數據部分讀取機制,而對于某些沒有提供相應機制的數據而言,Hibernate也通過其它途徑實現了分頁,如通過Scrollable ResultSet,如果JDBC不支持Scrollable ResultSet,Hibernate也會自動通過ResultSet的next方法進行記錄定位。Hibernate的Criteria、Query等接口提供了一致的方法設定分頁范圍。下面是書中的例子:

          Criteria criteria = session.createCriteria(TUser.class);
          Criteria.add(Expression.eq(
          "age""20"));
          //從檢索結果中獲取第100條記錄開始的20條記錄
          criteria.setFirstResult(100);
          criteria.setFetchSize(
          20);

                不過,我在測試的時候總是不能夠正常工作,把setFetchSize方法換成setMaxResults方法才行。換成最新的mysql-connector-java-3.1.10-bin-g.jar驅動也是一樣。
          posted on 2005-07-26 18:12 小米 閱讀(5560) 評論(4)  編輯  收藏 所屬分類: Hibernate

          評論:
          # re: 《深入淺出Hibernate》讀書筆記(8)——Hibernate分頁 2005-08-24 10:00 | Bug.o0
          order by  回復  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(8)——Hibernate分頁 2005-12-01 19:03 | DreamTiger
          我也碰到這個問題。用setFetchSize沒有作用。但是如果換成setMaxResults后,讀出來的就不對了,是從第一個開始,而不是從指定的開始。  回復  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(8)——Hibernate分頁 2005-12-01 19:10 | DreamTiger
          是我弄錯了,用setMaxResults可以的。  回復  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(8)——Hibernate分頁 2009-05-26 16:20 | qianmz
          criteria是不是
          criteria.setFirstResult(start);
          criteria.setFetchSize(end);
          對任何數據庫都可以這樣設置查詢規定的條數(比如mysql中).
          我記得在oracle中是
          criteria.setFirstResult(start);
          criteria.setMaxResult(end);  回復  更多評論
            
          主站蜘蛛池模板: 清河县| 丹棱县| 巫山县| 石楼县| 上虞市| 襄汾县| 绥德县| 余江县| 治县。| 潜江市| 乌什县| 会宁县| 通城县| 平塘县| 梧州市| 克拉玛依市| 抚松县| 灵丘县| 巴彦淖尔市| 商河县| 五寨县| 柳州市| 邳州市| 宝坻区| 周口市| 娄烦县| 阳谷县| 囊谦县| 莱阳市| 海口市| 武清区| 将乐县| 武冈市| 明水县| 灵台县| 千阳县| 栾城县| 寿阳县| 休宁县| 富阳市| 龙游县|