<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 翻頁查詢 無論是執行JDBC SQL,還是模板SQL,還是SQL文件,SQLManager都提供了翻頁操作API,翻頁操作需要用到倆個對象 PageRequest,用于翻頁請求,PageResult 翻頁執行結果 ``` PageRequest request = DefaultPageRequest.of(1,10); ``` 如上代碼訪問第一頁,期望每頁10個結果集 PageResult包含了總的個數,以及當前分頁的內容,定義如下 ```java public interface PageResult<T> { public long getTotalRow(); public List<T> getList(); public long getTotalPage(); } ``` > 用戶可以自由實現PageRequest和PageResult,默認是DefaultPageRequest和DefaultPageResult JDBC SQL翻頁查詢 ```java String sql = "select * from sys_user where department_id=?"; PageRequest request = DefaultPageRequest.of(1,10); SQLReady sqlReady = new SQLReady(sql,new Object[]{1}); PageResult pr = sqlManager.execute(sqlReady,UserEntity.class,request); DefaultPageResult pageResult = (DefaultPageResult)pr; ``` 模板SQL 翻頁查詢 ```java String sql = "select #{page('*')} from sys_user where department_id=#{id}"; PageRequest request = DefaultPageRequest.of(1,10); Map map = new HashMap<>(); map.put("id",1); PageResult pr = sqlManager.executePageQuery(sql,UserEntity.class,map,request); ``` 使用了函數page(),用于動態生成倆條sql,一條是輸出count(1),求總數的,一條是輸出page入參的值,用于查詢結果 如果sql語句是group by,則還需要封裝成子查詢 ```java String sql = "select #{page('*')} from (select count(1) total, department_id from sys_user group by department_id ) a"; PageRequest request = DefaultPageRequest.of(1,10); PageResult<Map> pr = sqlManager.executePageQuery(sql,Map.class,null,request); ``` SQL文件翻頁 SQL文件翻頁同模板翻頁SQL一樣,提供一個page()函數,用于方便轉化為count語句和查詢語句 ```sql select #{page("*")} from sys_user a order by id asc ``` 或者使用pageTag ```sql select -- @pageTag(){ id,name,department_id,create_time --@ } from sys_user a order by id asc ``` java代碼如下 ```JAVA SqlId selectById = SqlId.of("user","select"); PageRequest pageRequest = DefaultPageRequest.of(1,20); PageResult pageResult = sqlManager.pageQuery(selectById,UserEntity.class,new HashMap(),pageRequest); ``` 為了提高性能,BeetlSQL提供了pageIgnoreTag 標簽函數,在求總數的時候忽略order by,或者其他任何sql片段 ```java select -- @pageTag(){ id,name,department_id,create_time --@ } from sys_user a -- @pageIgnoreTag(){ order by id asc -- @} ``` 更進一步,可以提供倆個SQL來分別作為求總數以及查詢結果集,有時候也能優化查詢 ```sql queryNewUser === select * from user order by id desc ; queryNewUser$count === select count(1) from user ``` 當翻頁查詢的時候,如果存在$count,則使用此sql片段作為求總數sql Java代碼如下 ```JAVA SqlId selectById = SqlId.of("user","queryNewUser"); PageRequest pageRequest = DefaultPageRequest.of(1,20); PageResult pageResult = sqlManager.pageQuery(selectById,UserEntity.class,new HashMap(),pageRequest); ``` PageRequest對象有一個方法是isTotalRequired,因此可以避免每次都查詢,比如,構造PageRequest傳入 false ```java PageRequest pageRequest = DefaultPageRequest.of(1,20,false); ``` **再次強調**,page("*")或者pageTag 來生成倆條sql語句,并不是生成倆條翻頁語句,如果你的查詢語句有group by,那么,提供sql語句應該用子查詢方式 ```sql queryByGroup === select #{page("*")} from (select * from user group by department ) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看