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。