MyBatisで複数のパラメータを渡す方法は何ですか?

MyBatisでは、複数のパラメータを渡すためのさまざまな方法があります。

  1. Mapを使用したり、@Paramアノテーションを使用することで、複数のパラメータを1つのMapにまとめることができます。また、@Paramアノテーションを使用することで、各パラメータに名前を付けてSQL文中でその名前を使用できます。

たとえば、Mapを使用して複数のパラメーターを渡す方法:

Map<String, Object> params = new HashMap<>();
params.put("param1", value1);
params.put("param2", value2);
List<ResultType> result = sqlSession.selectList("namespace.statement", params);

複数のパラメータを渡すために@Paramアノテーションを使用することもできます。

List<ResultType> result = sqlSession.selectList("namespace.statement", @Param("param1") value1, @Param("param2") value2);

SQL文では、${param1}と${param2}を使用してパラメータを参照することができます。

  1. POJOオブジェクトを使用すると、複数のパラメータを1つのPOJOオブジェクトにカプセル化し、SQL文でPOJOのプロパティを直接参照できます。

例えば、POJOオブジェクトを定義する。

public class MyParams {
    private String param1;
    private String param2;
    // getters and setters
}

その後、SQL文でPOJOの属性を参照します。

<select id="statement" parameterType="com.example.MyParams" resultType="com.example.ResultType">
    SELECT * FROM table WHERE column1 = #{param1} AND column2 = #{param2}
</select>

呼び出し時に、複数のパラメータをPOJOオブジェクトにまとめて渡します。

MyParams params = new MyParams();
params.setParam1(value1);
params.setParam2(value2);
List<ResultType> result = sqlSession.selectList("namespace.statement", params);

これらの方法はすべて複数のパラメータの受け渡しを実現できますので、実際のシチュエーションに適する方法を選択してください。

bannerAds