Mybatis ページングプラグイン pageHelper の詳細な説明と簡単な例

Mybatis ページングプラグイン pageHelper の詳細な説明と簡単な例

Mybatis ページングプラグイン pageHelper の詳細な説明と簡単な例

動作フレームワーク Spring Springmvc Mybatis3

まず、ページングプラグインを使用するには、Mavenの依存関係を導入する必要があります。pom.xmlに以下を追加します。

<!-- ページネーションヘルパー -->
<依存関係>
<groupId>com.github.pagehelper</groupId>
<artifactId>ページヘルパー</artifactId>
<バージョン>3.7.5</バージョン>
</依存関係>

次に、設定ファイルに設定を追加する必要があります。方法は2つあります。

1. 次の内容で新しいmybatis-config.xmlファイルを作成します。

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<!DOCTYPE 設定
 パブリック "-//mybatis.org//DTD 構成 3.0//EN"
 「http://mybatis.org/dtd/mybatis-3-config.dtd」を参照してください。

 <構成>
 <!-- ページネーションヘルパー -->
 <プラグイン>
  <!-- com.github.pagehelper は PageHelper クラスのパッケージ名です -->
  <プラグインインターセプター="com.github.pagehelper.PageHelper">
  <!-- データベース方言 -->
    <プロパティ名="方言" 値="MySQL"/>
    <!-- true に設定すると、RowBounds ページングを使用して、合計数を見つけるためのカウント クエリが実行されます -->
    <プロパティ名="rowBoundsWithCount" 値="true"/>
  </プラグイン>
</プラグイン>
 </構成>

spring-mybatis.xmlにBeanプロパティを追加する

<bean id="sqlSessionFactory" クラス="org.mybatis.spring.SqlSessionFactoryBean">
<プロパティ名="データソース" ref="データソース" />

グローバル設定ファイルをロードする

<プロパティ名="configLocation" 値="classpath:mybatis-config.xml"></プロパティ>

すべての mapper.xml マッピング ファイルを見つけるために、マッパー スキャンを構成します。

<プロパティ名="mapperLocations" 値="classpath:com/lyitong/mapping/*.xml"></プロパティ>

注: mybatis-config.xml 構成ファイルで次のエイリアス構成が有効になっている場合:

<タイプエイリアス>
    <!-- クラスの最初の文字が小文字の javabean の非修飾クラス名がエイリアスとして使用されます (実際、エイリアスは大文字と小文字を区別しません)。 JavaBeanに@Aliasアノテーションを追加してエイリアスを定義することもできます。例:@Alias(student) -->
    <パッケージ名="com.lyt.usermanage.mapper"/>
  </typeAliases>

次に、Spring と mybatis の統合ファイルに対応するプロパティを追加する必要があります。そうしないと、mybatis 構成ファイルの読み込みに失敗し、次のように例外が報告されます。

 <bean id="sqlSessionFactory" クラス="org.mybatis.spring.SqlSessionFactoryBean">
    <プロパティ名="データソース" ref="データソース" />
    <!-- グローバル設定ファイルをロードします -->
    <プロパティ名="configLocation" 値="classpath:mybatis/mybatis-config.xml"></プロパティ>
    <!-- すべての mapper.xml マッピング ファイルを検索するようにマッパー スキャンを構成します。 -->
    <プロパティ名="mapperLocations" 値="classpath:com/lyt/usermanage/mapper/*.xml"></プロパティ>
    <!-- 設定タイプのエイリアス -->
    <プロパティ名="typeAliasesPackage" 値="classpath:com/lyt/usermanage/pojo/*"></プロパティ>
  </bean>

上記の構成と比較すると、ここではもう1つのステップがあります

    <プロパティ名="typeAliasesPackage" 値="classpath:com/lyt/usermanage/pojo/*"></プロパティ>

設定する際は、mybatis 設定ファイルと spring-mybatis 統合ファイルのプロパティの統一に注意してください。

2. 上記の設定が完了したら、次の2番目の方法に進みます。

spring-mybatis.xmlで以下のプロパティを直接設定します。

<bean id="sqlSessionFactory" クラス="org.mybatis.spring.SqlSessionFactoryBean">
<プロパティ名="データソース" ref="データソース" />
<プロパティ名="mapperLocations" 値="classpath:com/lyitong/mapping/*.xml"></プロパティ>

<!-- pageHelper ページング プラグイン-->
<プロパティ名="プラグイン">
  <配列>
   <bean class="com.github.pagehelper.PageHelper">
    <プロパティ名="プロパティ">
     <値>
      方言=mysql
      行境界カウント=true
     </値>
    </プロパティ>
   </bean>
  </配列>
</プロパティ>
</bean>

設定ファイルをロードしたら、そのまま使用できます。具体的な使用方法のコードは次のとおりです。

PageHelper.startPage(Integer.parseInt(currentPage), Integer.parseInt(pageSize));
  リスト<LytBbsTz> publishTz = bbsTzDao.getPublishTz(userId);
  PageInfo<LytBbsTz> info = 新しい PageInfo<LytBbsTz>(publishTz);
  map.put("ステータス", 1);
  map.put("tzList", info.getList());
  マップを返します。

フロントエンドで渡す必要があるパラメータは現在のページと表示するページ数です。もちろん、表示するページ数はバックエンドで指定することもできます。一般的には、パラメータを受け取るときに次のようにデフォルト設定を追加するのが最適です。

@RequestParam(defaultValue="1",value="currentPage")文字列 currentPage、@RequestParam(defaultValue="10",value="pageSize")文字列 pageSize

これは、受信したパラメータが空の文字列の場合に表示されるデフォルトのページと項目数です。これは自分で設定できます。

上記はpageHelperの簡単な応用例です

読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。

以下もご興味があるかもしれません:
  • Mybatis ページングプラグイン PageHelper の使い方の詳しい説明
  • SpringBoot プロジェクトにおける無効なページング プラグイン PageHelper の問題と解決策
  • SpringMvc+Mybatis+Pagehelper ページングの詳細
  • PageHelper プラグインを使用して 1 対多クエリを実装する際のページングの問題
  • Spring Boot+Mybatis+Druid+PageHelper は、マルチデータソースとページングメソッドを実装します。
  • Springbootはページヘルパーページング機能を統合します
  • Mybatis ページングプラグイン PageHelper の設定と簡単な使用方法 (推奨)
  • SpringBoot は MyBatis のページング プラグイン PageHelper のサンプル コードを統合します。
  • ページング効果を実現するには、mybatis プラグイン PageHelper を使用します。
  • PageHelperプラグインを使用してサービス層のページングを実装する

<<:  VueはElementUIのフォームサンプルコードを模倣する

>>:  CentOS 7 に Docker 1.8 をインストールする詳細な手順

推薦する

HTML におけるいくつかの特殊属性タグの使用法の紹介

以下の属性はブラウザとの互換性があまりありません。 1.transform:rotate(45度) ...

Vue で className として空の文字列を使用することはなぜ推奨されないのですか?

目次空の文字列 '' と null を比較するケース1: 空の文字列を使用する &#...

Dockerはプライベートライブラリイメージを完全に削除します

まず、インターネット上の一般的な慣行を見てみましょうデフォルトでは、プライベート ライブラリはイメー...

1 時間で MySQL データベースを学ぶ (Zhang Guo)

目次1. データベースの概要1.1 開発の歴史2. MySQL の紹介2.1. MySQLの概要2....

Hyper-V なしで Windows 10 を動作させるソリューション

Windows10 Home Edition でHyper-vを有効にする方法をまだ探していますか?...

Ubuntu で nvidia グラフィック ドライバーをインストールする (簡単なインストール方法)

Ubuntu で nvidia グラフィック カード ドライバーをインストールします。同じ方法で ...

Docker 実行オプションを使用して Dockerfile の設定を上書きする

通常は、最初に Dockerfile ファイルを定義し、次に docker build コマンドを使...

MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ

この記事では、MySQL の null (IFNULL、COALESCE、NULLIF) に関連する...

MySQL XA で分散トランザクションを実装する方法

目次序文XA プロトコルMySQL XA で分散トランザクションを実装する方法序文MySQL が単一...

Linux zabbix エージェントの展開と設定方法の詳細な説明

1. web01にzabbix-agentをインストールするZabbix ウェアハウスをデプロイする...

react+antdプロジェクトをゼロから構築する方法を教えます

これまでの記事はすべて私自身の学習記録であり、主に以前に遭遇した落とし穴を忘れないようにするためのも...

Mysql データベースの日付と日時型でデフォルト値 0000-00-00 を設定するときに発生するエラー問題の詳細な説明

現象: MySQL バージョン 5.7 以降では、日付型と日付時刻型のデフォルト値が「0000-00...

MySQL 5.7 でルートパスワードを変更する方法に関するチュートリアル

バージョンアップデートにより、元のユーザーのパスワードフィールドがauthentication_st...