探索與發現

          研究java技術

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            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(如果更換數據庫還得改代碼),來的要好,因為我這里的是
          ?<sql:query var="rs" startRow="${ipage*(cpage-1)}" maxRows="${ipage}">
          ?select * from test
          ?</sql:query>
          可是我看了他的源代碼,竟然它利用緩存,每次調用
          <sql:query startRow="" maxRows="">它都會把select * from test的數據全部一次性查出得到一個result,再根據startRow,再調用result.next(),startRow次后才正式幫我們工作..

          看來還是原始的方式速度要快一些..
          .......進化出來的產物不一定先進
          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也差不多,也是把數據全查出放在緩存里的"

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

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

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

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

          主站蜘蛛池模板: 邳州市| 察隅县| 浦城县| 聂荣县| 偃师市| 元谋县| 沙坪坝区| 陈巴尔虎旗| 通州市| 昂仁县| 日土县| 昌江| 灯塔市| 东阿县| 阿巴嘎旗| 汝阳县| 莱阳市| 大余县| 浮山县| 汾阳市| 新干县| 巴林右旗| 北宁市| 广西| 武胜县| 北流市| 泰来县| 鸡泽县| 金川县| 交口县| 临沧市| 通河县| 桂东县| 乌兰县| 台前县| 广元市| 若尔盖县| 磴口县| 辽阳市| 乐清市| 洛隆县|