MyBatis マッパーに複数のパラメータを渡す方法は何ですか?
MyBatisのMapper内で、@Paramアノテーションを使用して複数のパラメータをMapperメソッドに渡すことができます。
例えば、UserMapperというMapperインターフェースがあるとします。その中にはgetUserByIdAndNameというメソッドがあり、このメソッドはidとnameの2つのパラメーターを必要とします。
public interface UserMapper {
User getUserByIdAndName(@Param("id") int id, @Param("name") String name);
}
上記の例では、各引数に名前を指定するために@Paramアノテーションが使用され、これらの名前を使用してMapper XMLファイルでそれらを参照することができます。
その後、Mapper XMLファイルでこれらのパラメータを${}構文を使って参照することができます。例:
<select id="getUserByIdAndName" resultType="User">
SELECT * FROM user WHERE id = #{id} AND name = #{name}
</select>
上記の例では、#{id}と#{name}は、getUserByIdAndNameメソッドのidとnameのパラメーターにそれぞれ対応しています。
最後、JavaコードでUserMapperインターフェースのgetUserByIdAndNameメソッドを呼び出して結果を取得できます。
User user = userMapper.getUserByIdAndName(1, "John");
上記の例では、idを1に設定し、nameを”John”に設定し、getUserByIdAndNameメソッドを呼び出して条件を満たすユーザーオブジェクトを取得します。