マッパーに複数の引数を渡すには

MyBatisでは、複数の引数は次のようにして渡すことができます。

  1. パラメータをオブジェクトとして使用:複数のパラメータを一つのオブジェクトにまとめ、オブジェクトをMyBatis のメソッドにパラメータとして渡すことができる。SQL 文では、オブジェクトのプロパティ名でパラメータ値にアクセスできる。
public class User {
    private String name;
    private int age;
    // getters and setters
}

// MyBatis 接口方法
public User getUserByNameAndAge(User user);

SQL 文は XML 設定ファイルの中で次のように使用できます。

<select id="getUserByNameAndAge" parameterType="User" resultType="User">
    SELECT * FROM users WHERE name=#{name} AND age=#{age}
</select>
  1. 本質的に
  2. 日本語ネイティブ表現として要約:
  3. @Param
// MyBatis 接口方法
public List<User> getUserByNameAndAge(@Param("name") String name, @Param("age") int age);

XML 設定ファイルの SQL ステートメントでは、このように使用します。

<select id="getUserByNameAndAge" resultType="User">
    SELECT * FROM users WHERE name=#{name} AND age=#{age}
</select>
  1. パラメータにMapを利用する:複数の引数をMapにまとめて、MyBatisメソッドに引数として渡すことができる。Mapのキー名からSQL文中で対応するパラメータ値にアクセスできる。
// MyBatis 接口方法
public List<User> getUserByNameAndAge(Map<String, Object> params);

XMLの設定ファイルのSQL文においては、それらの使用法は以下の通りである。

<select id="getUserByNameAndAge" parameterType="java.util.Map" resultType="User">
    SELECT * FROM users WHERE name=#{name} AND age=#{age}
</select>

MyBatis で複数のパラメータを渡す方法を以下に示します。状況に応じて適切な方法を選択してください。

bannerAds