クエリをページングPageHelper条件を統合することより行うにはSpringBoot

https://yq.aliyun.com/articles/619586

 

どのように中国の通訳(翻訳)で複数の条件とPageInfo属性で達成するためにどのようにSpringBoot、このブログの統合PageHelperについて

A、ジャーパッケージ

 

        <! -分页插件- > 
        <依存> 
            <groupIdを> com.github.pagehelper </ groupIdを> 
            <たartifactId> pagehelperスプリング・ブート・スターター</たartifactId> 
            <バージョン> 1.2.3 </バージョン> 
        </依存関係>

 

 

第二に、登録構成プラグイン

 

パッケージcn.dawn.util; 

/ ** 
 * 2018年6月24日にドーンによって作成されます。
 * / 
インポートjava.util.Properties; 

輸入org.springframework.context.annotation.Bean; 
輸入org.springframework.context.annotation.Configuration。

輸入com.github.pagehelper.PageHelper; 

/ * 
 *注册MyBatisの分页插件PageHelper 
 * / 

@Configuration 
パブリッククラスMybatisConf { 
    @Bean 
    公共PageHelper pageHelper(){ 
        System.out.printlnは( "MyBatisConfiguration.pageHelper()")。
        PageHelper pageHelper =新しいPageHelper(); 
        プロパティpを=新しいプロパティ(); 
        p.setProperty( "offsetAsPageNum"、 "真");
        p.setProperty( "rowBoundsWithCount"、 "真");
        p.setProperty(、 "合理的な" "真")。
        pageHelper.setProperties(P)。
        pageHelperを返します。
    } 
}

 

三、DAO層インタフェース

 

パッケージcn.dawn.mapper; 

輸入cn.dawn.entity.Sys_noteDetail; 

輸入はjava.util.List; 
輸入java.util.Map; 

/ ** 
 * 2018年4月16日にドーンによって作成されます。
 * / 
パブリックインターフェイスINoteDAO { 


    / *笔记分页查询* / 
    パブリックリスト<Sys_noteDetail> getOnePagenoteData(地図<文字列、OBJECT>マップ)例外をスローします。


}

 

  ページングは​​、地図、理由スマートラベルの統合の特に脆弱な、その多条件が地図に渡されている条件で行うのがベストです

四、DAO層に配置されたXML

 

<?xmlのバージョンは、= "1.0"エンコード= "UTF-8"?> 
<DOCTYPEマッパー!
        PUBLIC " - // mybatis.org//DTDマッパー3.0 // EN" 
        「http://mybatis.org/dtd/mybatis -3- mapper.dtd "> 
<マッパー名前空間=" cn.dawn.mapper.INoteDAO "> 


    <! -分页查询- > 

    <IDを選択=" getOnePagenoteData」resultTypeと= "cn.dawn.entity.Sys_noteDetail"> 
        sys_notedetail SELECT * FROM 
        <場所> 
            <テスト= "dnameの!= nullのとDNAME!= ''"の場合> 
                とdnameのLIKE '%' #{dnameの} '%' 
            </ IF> 
            <テスト= "STARTDATE!= nullの場合そしてSTARTDATE!= '' ">
                AND dentrytime&GT; =#{STARTDATE} 
            </ IF>
            <もしテスト= "ENDDATE = NULLとENDDATE = ''!">
                AND dentrytime&LT; =#{ENDDATE} 
            </ IF> 
        </場所> 
    </選択> 


</マッパー>

 

実際にそれを使用して第五に、PageHelperを呼び出し、

 

パッケージcn.dawn.service.impl; 

輸入cn.dawn.entity.Sys_noteDetail; 
輸入cn.dawn.mapper.INoteDAO; 
輸入cn.dawn.service.INoteService; 
輸入com.github.pagehelper.PageHelper; 
輸入com.github.pagehelper.PageInfo; 
輸入org.springframework.stereotype.Service。
輸入org.springframework.transaction.annotation.Transactional; 

輸入javax.annotation.Resource; 
輸入java.util.Date; 
輸入java.util.HashMapを; 
輸入はjava.util.List; 
輸入java.util.Map; 

/ ** 
 * 2018年4月16日にドーンによって作成されます。
 * / 
@Service( "noteServiceImpl")
publicクラスNoteServiceImpl実装INoteService {  
    @Resource(名= "INoteDAO")
    プライベートINoteDAO iNoteDAO。


    公共PageInfoは<Sys_noteDetail> getOnePagenoteDataは(整数pageIndexパラメータは、整数のpageSizeは、文字列DNAME、日付STARTDATE、日付ENDDATE)が例外をスロー{ 
         / *创建分页工具类* / 
        PageHelper.startPage(pageIndexパラメータ、pageSizeを)。
        地図<文字列、オブジェクト>マップ=新しいHashMapの<文字列、オブジェクト>(); 
        map.put( "DNAME"、DNAME)。
        map.put( "STARTDATE"、STARTDATE)。
        map.put( "終了日"、終了日)。
        一覧<Sys_noteDetail>ドキュメント= iNoteDAO.getOnePagenoteData(マップ); 
        PageInfo <Sys_noteDetail> pageInfo =新しいPageInfo <>(ドキュメント)。
        pageInfoを返します。

    } 

}

 

第六に、PageInfo、簡単なコールの話

 

    //このページ   
    プライベートint型PAGENUM;   
    の//ページ番号   
    プライベートint型のpageSize;   
    現在のページ//多数の   
    プライベートint型のサイズ;   
    // startRow属性以来ととendRow珍しい、ここでは具体的な使用が言うには   
    、//」ページにすることができディスプレイにstartRow属性とendRowデータの合計サイズ「   
  
    データベースの最初の要素の行の//現在のページ番号   
    プライベートint型startRow属性;   
    //データベース内のページの行番号で、この最後の要素   
    プライベートint型とendRow;   
    //は数の合計記録し   
    、民間を総ロング;   
    //ページ   
    の専用ページはint;   
    //結果セット   
    、プライベートリスト<T>一覧   
  
    //最初のページ   
    プライベートint型FIRSTPAGE;   
    フロント//   
    ;プライベートint型prePage  
   
    //最初のページかどうか  
    ブール= falseをisFirstPageプライベート;  
    //の最後のページかどうか   
    プライベートisLastPageブール=偽;   
    //はあり前のページ   
    プライベートhasPreviousPageブール=偽;   
    //が次の場合は   
    、プライベートhasNextPageブール=偽   
    //ナビゲーション・ページ番号   
    プライベートint型のnavigatePages;   
    //すべてのナビゲーション・ページ番号   
    プライベートint型[] navigatepageNums。  

 

おすすめ

転載: www.cnblogs.com/kelelipeng/p/11875574.html