Java での Mybatis ページング クエリのパラメータ受け渡しメソッドは何ですか?

王林
リリース: 2023-05-19 10:16:19
転載
1043 人が閲覧しました

1. パラメータを順番に渡す

SQL では、パラメータの順序を表現する方法が 2 つあり、arg0、arg1... を使用する方法と param1、param2... を使用する方法です。このメソッドは可読性が低いため、開発での使用はお勧めできません。今回のテストでは、パラメータの定義は上記の形式に限定されず任意に定義できます

1. 永続層インターフェイスのメソッド

/**
     * 分页查询 -- 顺序传参
     * @param startIndex 开始索引
     * @param pageSize 每页条数
     * @return
     */
    List<User> findPage(int startIndex,int pageSize);
ログイン後にコピー

2. UserMapper.xml マッピング ファイルnew タグの追加

<!-- 分页查询-顺序传参 -->
    <select id="findPage" resultType="com.mybatisstudy.pojo.User">
        select * from user limit #{param1},#{param2}
    </select>
ログイン後にコピー

ここで、型を定義せずにパラメータの型を定義できることがわかりました

3. 新しいテスト メソッドを追加

// 测试分页查询方法 -- 顺序传参
    @Test
    public void testFindPage(){
        List<User> users = userMapper.findPage(0,3);
        users.forEach(System.out::println);
    }
ログイン後にコピー

4. 実行結果

Java での Mybatis ページング クエリのパラメータ受け渡しメソッドは何ですか?

ここでの開始番号は0から始まり、データIDは1から始まりますので、気にしないでください。びっくり

2. @paramパラメータの受け渡し

# インターフェースメソッドのパラメータリストに@Paramでパラメータ名を定義し、パラメータ名でパラメータの位置を指定します。 SQL ステートメントのアノテーションで定義されます。このメソッドのパラメーターは比較的直感的であるため、お勧めします。

1. 永続層インターフェイス メソッド

/**
     * 分页查询 -- @param传参
     * @param startIndex 开始索引
     * @param pageSize 每页条数
     * @return
     */
    List<User> findPage1(@Param("startIndex")int startIndex,@Param("pageSize")int pageSize);
ログイン後にコピー

2. UserMapper.xml マッピング ファイルの新しいタグ

<!-- 分页查询-@param传参 -->
    <select id="findPage1" resultType="com.mybatisstudy.pojo.User">
        select * from user limit #{startIndex},#{pageSize}
    </select>
ログイン後にコピー

ここで注意してください。永続層インターフェイスのパラメータと一致している必要があります。そうでない場合は、エラーが報告されます。

# 3. 新しいテスト方法
#
// 测试分页查询方法 -- @param传参
    @Test
    public void testFindPage1(){
        List<User> users = userMapper.findPage1(3,3);
        users.forEach(System.out::println);
    }
ログイン後にコピー

4. 実行結果

Java での Mybatis ページング クエリのパラメータ受け渡しメソッドは何ですか?3. カスタム POJO クラスのパラメータの受け渡し

カスタム POJO クラス、このクラスの属性は、SQL ステートメントでパラメータをバインドするときに渡されるパラメータです。 POJO プロパティ名をパラメーター名として使用します。この方法をお勧めします。

1. カスタム POJO クラス

ここでは 2 つのパラメータが必要です。1 つはクエリの開始数で、もう 1 つはページあたりのエントリ数です。 this pojo クラスに必要なパラメータは 2 つだけです

package com.mybatisstudy.pojo;
 
public class PageQuery {
    private int startIndex;
    private int pageSize;
 
    public PageQuery(int i, int i1) {
        this.startIndex = i;
        this.pageSize = i1;
    }
 
    public int getStartIndex() {
        return startIndex;
    }
 
    public void setStartIndex(int startIndex) {
        this.startIndex = startIndex;
    }
 
    public int getPageSize() {
        return pageSize;
    }
 
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
}
ログイン後にコピー

2. 永続層インターフェイス メソッド
/**
     * 分页查询 -- POJO传参
     * @param PageQuery
     * @return
     */
    List<User> findPage2(PageQuery pageQuery);
ログイン後にコピー

3. UserMapper.xml マッピング ファイルの新しいタグ

<!-- 分页查询-POJO传参 -->
    <select id="findPage2" resultType="com.mybatisstudy.pojo.User" parameterType="com.mybatisstudy.pojo.PageQuery">
        select * from user limit #{startIndex},#{pageSize}
    </select>
ログイン後にコピー

ここで、パラメーター名がカスタム POJO クラスのメンバー変数名と一致している必要があることに注意することも重要です。一貫性がない場合、エラーが報告されます。

4. 追加新しいテストメソッド
// 测试分页查询方法 -- POJO传参
    @Test
    public void testFindPage2(){
        PageQuery pageQuery = new PageQuery(2,3);
        List<User> users = userMapper.findPage2(pageQuery);
        users.forEach(System.out::println);
    }
ログイン後にコピー

5. 実行結果

Java での Mybatis ページング クエリのパラメータ受け渡しメソッドは何ですか?4. マップパラメータの受け渡し

望まない場合POJO をカスタマイズするには、パラメータを渡すためのキャリアとして Map を使用できます。SQL ステートメントでパラメータをバインドするときに、パラメータ名として Map Key を使用するだけです。この方法が推奨されます

1. 永続層インターフェイス メソッド
/**
     * 分页查询 -- Map传参
     * @param Map
     * @return
     */
    List<User> findPage3(Map<String,Object> params);
ログイン後にコピー

2. UserMapper.xml マッピング ファイルの新しいタグ

<!-- 分页查询-Map传参 -->
    <select id="findPage3" resultType="com.mybatisstudy.pojo.User" parameterType="map">
        select * from user limit #{startIndex},#{pageSize}
    </select>
ログイン後にコピー

こちらパラメータの数はマップ コレクションの数と一致する必要があり、パラメータ名はマップ コレクション内のキーの名前と一致する必要があることに注意することも重要です。一致しない場合はエラーが報告されます

3. 新しいテスト方法
#
// 测试分页查询方法 -- Map传参
    @Test
    public void testFindPage3(){
        Map<String,Object> params = new HashMap<>();
        params.put("startIndex",0);
        params.put("pageSize",4);
        List<User> users = userMapper.findPage3(params);
        users.forEach(System.out::println);
    }
ログイン後にコピー

4. 実行結果

##

以上がJava での Mybatis ページング クエリのパラメータ受け渡しメソッドは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート