91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis分頁插件MicroPageInterceptor

發布時間:2020-07-29 13:20:03 來源:網絡 閱讀:2503 作者:wb59f817a362984 欄目:軟件技術

mybatis分頁插件MicroPageInterceptor

源碼地址:
https://github.com/jeffreyning/mybatis-plus

MicroPageInterceptor特點
1, 支持mysql和oracle分頁
2, 不必在xml編寫統計count的sql
3, 使用RowBounds子類PageInfo作為分頁信息和記錄總數的載體,不必像其他分頁插件那樣要求輸入輸出參數必須繼承特殊父類。
4, 可在PageInfo中填寫自定義排序sql串,提高查詢性能和排序靈活性

spring中配置mybatis分頁插件MicroPageInterceptor
建議在sqlSessionFactory中配置,可以根據sqlSessionFactory是oracle還是mysql配置插件的dialect屬性

    <!-- define the SqlSessionFactory -->  <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
        <propertyname="dataSource"ref="dynamic_xa_dataSource"/>
        <propertyname="typeAliasesPackage"value="foo.model"/>
      <propertyname="plugins">         
        <list>             
           <beanclass="com.nh.micro.mybatis.plugin.MicroPageInterceptor">
           <propertyname="dialect"value="mysql"/>
            </bean>         
        </list>     
      </property>        
    </bean>

Dao接口設置
接口中添加PageInfo參數,表示需要分頁處理

//分頁查詢,傳入PageInfo參數
public List queryInfoByCondition(Map paramMap,PageInfo pageInfo);
//不分頁,則不用傳PageInfo參數
public List queryInfoByCondition(Map paramMap);

PageInfo結構
PageInfo繼承RowBounds可以透傳到Mybatis內部,不影響正常的參數。
pageNo,頁數從1開始
pageRows,每頁條數
orderStr,自定義排序sql(非必填)
total,返回總記錄數(返回值)

public class PageInfo extends RowBounds {
    public PageInfo(int pageNo,int pageRows) {
        super(pageNo, pageRows);
    }
    public PageInfo(int offset,int limit, String orderStr) {
        super(offset, limit);
        this.orderStr=orderStr;
    }
    private Longtotal = 0l;
    public Long getTotal() {
        returntotal;
    }
    public void setTotal(Long total) {
        this.total = total;
    }
    private StringorderStr = "";
    public String getOrderStr() {
        returnorderStr;
    }
    public void setOrderStr(String orderStr) {
        this.orderStr = orderStr;
    }
}

分頁或不分頁sql在xml中是一樣的不需要修改;sql不需要針對pageinfo做額外處理,比如手工添加limit或rownum;不需要分頁的則不傳PageInfo參數;不需要額外填寫count統計sql;

<selectid="queryInfoByCondition"parameterType="Map"resultType="java.util.Map">        
select * from  micro_test5 where condition=#{param}    
</select>

Java調用Dao
PageInfo創建實例時需填寫pageNo(頁數從1開始)和pageRows(每頁條數)
如果xml中sql沒有orderby語句可以,在pageInfo中設置pageInfo.setOrderStr()

//創建分頁信息對象
PageInfo pageInfo=new PageInfo(1,10);//第1頁,每頁10條
//可以設置order串(非必須)
pageInfo.setOrderStr("id desc");
//調用dao并傳入pageInfo
List list=testRep.queryInfoById(paramMap,pageInfo);
System.out.println(list);
//使用pageInfo.getTotal()獲取總記錄數
System.out.println(pageInfo.getTotal());

注意:
1,自定義排序
如果xml中sql沒有寫死排序sql,則pageInfo可以設置排序字符串。好處是查詢記錄個數時不必排序,查詢記錄時自動拼上排序sql,提高查詢性能。也可以不修改xml中sql支持靈活排序。
2,總記錄數處理
不必編寫額外的查詢count的sql;記錄數會在插件中設置到pageInfo對象的total字段中帶回。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳普湖县| 常宁市| 武川县| 邵阳县| 元阳县| 民勤县| 清涧县| 天峨县| 巴彦县| 高平市| 平遥县| 什邡市| 喀喇沁旗| 永靖县| 崇义县| 武定县| 朝阳县| 安阳县| 永寿县| 托克托县| 昌邑市| 苏尼特右旗| 手机| 双城市| 乌拉特中旗| 巫山县| 万宁市| 津市市| 南汇区| 姜堰市| 台中市| 秀山| 镇安县| 万载县| 通榆县| 苏尼特左旗| 磐石市| 郁南县| 和顺县| 广汉市| 忻州市|