探索與發(fā)現(xiàn)

          研究java技術

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            83 隨筆 :: 0 文章 :: 109 評論 :: 0 Trackbacks
          因為項目當中用到分頁,界面用了jstl,本想用jstl給我分頁的,測試代碼如下

          <%@ taglib uri="<%@ taglib uri="<%@ taglib uri="<%@ page contentType="text/html; charset=gbk"%>
          <html>
          <body>
          ?<c:set value="8" var="ipage"/>
          ?<c:set value="${param.cpage}" var="cpage" scope="request"/>
          ?<c:if test="${empty sessionScope.allCount}">
          ?<sql:query var="rso">select * from test</sql:query>
          ?<c:set value="${rso.rowCount}" var="allCount" scope="session"/>
          ? </c:if>
          ?<sql:query var="rs" startRow="${ipage*(cpage-1)}" maxRows="${ipage}">
          ?select * from test
          ?</sql:query>
          ?<c:set value="${(allCount+ipage-1)/ipage}" var="allpage"/>
          ?<fmt:parseNumber value="${allpage}" integerOnly="true" var="allpage"/>
          ?xxx<c:out value="${allpage}"/><br>
          ?<c:forEach items="${rs.rows}" var="item">
          ?<c:out value="${item.name}"/>
          ?<c:out value="${item.password}"/><br>
          ?</c:forEach>
          ?? <c:if test="${cpage<=1}">
          ??? <c:set value="${cpage+1}" var="cpage"/>
          ?? </c:if>
          ?? <c:if test="${cpage>allpage}">
          ??? <c:set value="${allpage}" var="cpage"/>
          ?? </c:if>
          ? <A href="
          http://localhost:8080/jstl/test.jsp?cpage=${cpage-1}">上一頁</A>
          ? <A href="http://localhost:8080/jstl/test.jsp?cpage=${cpage}">當前頁</A>
          ? <A href="http://localhost:8080/jstl/test.jsp?cpage=${cpage+1}">下一頁</A>
          ?<hr>
          </body>
          </html>
          本以為這樣子比起用oracle里的rownum(如果更換數(shù)據(jù)庫還得改代碼),來的要好,因為我這里的是
          ?<sql:query var="rs" startRow="${ipage*(cpage-1)}" maxRows="${ipage}">
          ?select * from test
          ?</sql:query>
          可是我看了他的源代碼,竟然它利用緩存,每次調用
          <sql:query startRow="" maxRows="">它都會把select * from test的數(shù)據(jù)全部一次性查出得到一個result,再根據(jù)startRow,再調用result.next(),startRow次后才正式幫我們工作..

          看來還是原始的方式速度要快一些..
          .......進化出來的產(chǎn)物不一定先進
          posted on 2006-07-15 10:50 蜘蛛 閱讀(3130) 評論(5)  編輯  收藏 所屬分類: jsp

          評論

          # re: jstl分頁顯示的思考 2006-07-15 15:37 mixlee11
          這位兄弟,拜托仔細看看hibernate的代碼,不看代碼至少也看看打印出來的SQL再下結論  回復  更多評論
            

          # re: jstl分頁顯示的思考 2006-07-15 15:52 龍卷風
          "還有hibernate也差不多,也是把數(shù)據(jù)全查出放在緩存里的"

          哥們,不能瞎說啊  回復  更多評論
            

          # re: jstl分頁顯示的思考 2006-07-15 19:15 作者
          后面這一句聽,聽老師說的,
          不過真的要看看源碼了,呵呵
            回復  更多評論
            

          # re: jstl分頁顯示的思考 2006-07-15 19:32 作者
          看了一下,hibernate現(xiàn)在對主流數(shù)據(jù)庫分別對net.sf.hibernate.dialect接口的實現(xiàn)(利用每個數(shù)據(jù)庫分頁技術的不同,實現(xiàn)),但是如果對某數(shù)據(jù)庫不支持的話,那么hibernate又回到了像我上面jstl分頁那樣子了,利用緩存了  回復  更多評論
            

          # re: jstl分頁顯示的思考[未登錄] 2007-08-19 17:19 ray
          哎....!
          老師就是這樣被你出賣的.......!
          如果把老師教給你的東西吃透了....是不會有這種"思考"的```!  回復  更多評論
            

          主站蜘蛛池模板: 昭觉县| 金坛市| 当阳市| 绥棱县| 宜城市| 朝阳县| 大同县| 宽甸| 双柏县| 连城县| 资兴市| 泸定县| 武功县| 志丹县| 乡城县| 涟源市| 醴陵市| 上饶市| 宝应县| 阿荣旗| 天峨县| 三门县| 湟源县| 德兴市| 攀枝花市| 榆林市| 虹口区| 保康县| 边坝县| 柳林县| 东平县| 西藏| 新绛县| 连平县| 佛冈县| 柏乡县| 新河县| 大安市| 内丘县| 广平县| 岳普湖县|