最近、会社はページネーションが必要なアラームページ機能を行う必要があります。多くの情報をチェックした後、PageHelperがより適切であることがわかりました。
したがって、私はゼロから始めてPageHelperを使用することに関するチュートリアルを書き、また1日忙しかったものを記録しました。
1.最初に、プロジェクトにPageHelperの依存関係を追加する必要があります。ここで私はそれをMavenで追加しました。
<Dependency> groupId> com.github.pagehelper </groupid> <artifactid> pagehelper </artifactid> <バージョン> 4.1.6 </version> </dependency>
2。mybatis構成ファイルにpagehelperの構成を追加します
<configuration> <plagins> <! - com.github.pagehelperは、pagehelperクラスが配置されているパッケージ名です。 Pagenum Page番号 - > <! - 効果はstartpageのpagenumと同じです - > <プロパティ名= "offsetaspagenum" value = "true"/> <! - このパラメーターはfalseにデフォルトです - > <! - count queryはrowbounds paginationを使用して実行されます - > rowbounds.limit = 0、すべての結果はクエリに照会されます - > <! - (ページクエリが実行されないという事実と同等ですが、結果はまだページタイプです) - > <プロパティ名= "pagesizezero" value = "true"/> <! - バージョン3.3.0は利用可能です - ページングパラメーターは合理化されています。ページ、pagenum>ページが最後のページ - > <! - 合理化が無効になっている場合、pagenum <1またはpagenum>ページが空のデータを返す場合 - > <プロパティname = "propertable" value = "true"/> <! - version 3.5.0が利用可能です - startpage(object parms)メソッドをサポートするために利用可能です - > < servletRequest-> <! - pagenum、pageize、count、pageszero、妥当な、orderbyを構成でき、マッピングのデフォルト値を構成しないでください - > <! - 構成を何気なくコピーしない場合、> <! - <プロパティネーム= "value =" pagenum = "pagenum = strive = limets;パラメーター - > <プロパティ名= "supportmethodsarguments" value = "true"/> <! - 常にreturn pageinfoタイプ、returnタイプがpageinfoであるかどうかを確認します。
3.ページビーンクラスを追加して、ページ情報を保存します
public class pagebean <t>は、Serializable {private static final long serialversionuid = 1l;プライベートロング合計; //レコードの総数プライベートリスト<T>リスト。 // results set private int pagenum; // Private int Pageizeの数。 //ページごとのレコード数プライベートインターページ。 //プライベートINTサイズのページの総数。 //現在のページのnum <= pagesize publicbean(list <t> list){if(list instanceof){page <t> page =(page <t>)list; this.pagenum = page.getPagenum(); this.pagesize = page.getPagesize(); this.total = page.getTotal(); this.pages = page.getPages(); this.list = page; this.size = page.size(); }} public long gettotal(){return total; } public void settotal(長い合計){this.total =合計; } public list <t> getList(){return list; } public void setlist(list <t> list){this.list = list; } public int getSize(){return size; } public void setSize(int size){this.size = size; } public int getPagenum(){pagenumを返します。 } public void setPagenum(int pagenum){this.pagenum = pagenum; } public int getPagesize(){return pagesize; } public void setPagesize(int pagesize){this.pagesize = pagesize; } public int getPages(){return Pages; } public void setPages(int pages){this.pages = pages; }}以下はビジネスロジックコードです
4.最初に、mapper.xmlファイルから開始し、データベースSQLを操作し、必要なデータを見つけます
<選択id = "selectallist" parametertype = "com.alarm.alarmparammodel" resultmap = "alarmmap"> select message_id、select message_id、seqnum、message_type、process_status、distribution_status、processor、scaster_time、close_time、system_id、group_id
5。マッパーインターフェイスメソッド
パブリックリスト<AlarmParammodel> selectallist(alarmparammodelモデル);
6。サービスインターフェイスメソッド
datagrid selectallist(alarmparammodelモデル、int pagenum、int pagesize);
7。サービス実装クラス
ここで、それがページネーションの主な論理であることに注意することが重要です。 Pagenumはページ番号を表し、Pagesizeは表示されたページの数を表し、StartPagメソッドは初期ページ、Orderbyメソッドは特定のフィールドに従ってデータを並べ替えます。ここでは、OCCR_TIME(DESC)の降順順序を使用します
public datagrid selectallist(alarmparammodelモデル、int pagenum、int pagesize){pagehelper.startpage(pagenum、pagesize); pagehelper.orderby( "scast_time desc"); List <AlarmParammodel> list = this.alarmmgrmapper.selectalllist(model); pageInfo <AlarmParammodel> pageInfo = new PageInfo <AlarmParammodel>(list); datagrid datagrid = new datagrid(pageinfo.getTotal()、pageinfo.getList()); Datagridを返します。 }8.ここでDatagridクラスを使用していることに気付きました。これは、合計(合計)や行(データ)を含むフロントデスクにデータを渡すために使用されるクラスです。
パブリッククラスのdatagrid {プライベートロング合計。プライベートリスト行= new ArrayList <>(); public datagrid(){super(); } public datagrid(長い合計、リスト行){super(); this.otal =合計; this.rows = rows; } public long gettotal(){return total; } public void settotal(長い合計){this.total =合計; } public list getRows(){return rows; } public void setrows(list rows){this.rows = rows; }}9.コントローラーレイヤーの書き込みを開始し、以前に書いた方法を呼び出します
ここでは、オフセットと制限は、フロントデスクから送信されたページ番号と、ページごとに表示されるページの数であることに注意する必要があります。ブートストラップ可能なオフセットと制限とは異なり、オフセットはオフセットを表します。つまり、ページごとに10個のデータが表示される場合、オフセットはブートストラップの2番目のページで表され、最初のページと3番目のページはそれぞれ0と20です。そして、ここでの私のオフセットとは、Pagenumを指します。
@RequestMapping(value = "/alarminfo/list"、method = {requestmethod.get、requestmethod.post}) @responsebody public datagrid alarminfo(alarmparammodelモデル、 @requestparam(value = "offset"、defaultvalue = "0"、nefice = fals @RequestParam(value = "lime"、defaultValue = "10"、必須= false)integer pagesize){datagrid datagrid = this.alarmmgrservice.selectalllist(model、pagenum、pagesize); Datagridを返します。 }10.フロントデスクのリクエストは、バックエンドデータを取得してページングすることができます。フロントデスクのブートストラップテーブルの構成を投稿します。
$( '#TB_DEPARTMENTS')一般的に、このプロパティを設定する必要があります(*)ページネーション://ページングを表示するかどうか(*)唯一の侵入:// trueに設定されて、ページネーションボタンではなく、並べ替え可能なものではありません://サイドページネーション://ページネーション方法:クライアントクライアントページネーション、サーバーサーバーページネーション(*)ページナンバー:1、//デフォルトのファーストページページサイズ://ページごとの記録行数(*)ページリスト:[10、25、50、100]、サーバーを入力するので、個人的には、StrictSearch:true、showcolumns:false、//すべての列が表示されます。showrefresh:false、// reshupedボタンが表示されますか?設定されていないため、テーブルはレコードの数に応じてテーブルの高さを自動的に感じます: "id"、//各行の一意の識別は一般に主要な列の識別です。一般的にshowtoggle:false:false、//詳細表示とリストビューcardview:false://詳細ビューの詳細ビュー:true、deboreformatter:deboriatihhaltion、paginationed:
ブートストラップに付属のページングボタンは使用しませんでした。 JQでボタングループを自分で書きました。次の記事では、ボタンコードを投稿して、より高度にカスタマイズできるようにします〜ブートストラップ可能なサブバンドを備えたページングボタンを使用して、構成を変更することもできます。
上記は、編集者が紹介したSpringMVC+MyBatis+PageHelper Paginationの詳細な説明です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!