マイバティスで複数のパラメータをどのように渡すのですか?
マイバティスで複数のパラメータを渡す方法は次のとおりです:
- Mapをパラメータとして使用することで、複数のパラメータを1つのMapにまとめて、MapをMyBatisのSQLステートメントに渡すことができます。SQLステートメント内でキーを使用して対応するパラメータ値を取得できます。
例えば、Mapを定義して複数のパラメータを設定します。
Map<String, Object> params = new HashMap<>();
params.put("param1", value1);
params.put("param2", value2);
MyBatisのSQL文中で、キーを使用してパラメータ値を取得します。
<select id="selectByExample" parameterType="java.util.Map" resultMap="BaseResultMap">
SELECT * FROM your_table WHERE column1 = #{param1} AND column2 = #{param2}
</select>
- @Param注釈の使用:@Param注釈を使用して、各パラメータに名前を指定し、複数のパラメータを順番にMyBatisのSQLステートメントに渡すことができます。SQLステートメント内で指定された名前を使用して、対応するパラメータの値を取得できます。
例えば、@Paramアノテーションを使用してパラメーター名を指定してメソッドを定義します。
@Select("SELECT * FROM your_table WHERE column1 = #{param1} AND column2 = #{param2}")
List<YourEntity> selectByParams(@Param("param1") Object param1, @Param("param2") Object param2);
- JavaBeanをパラメータとして使用すると、複数のパラメータを1つのJavaBeanにカプセル化し、そのJavaBeanをMyBatisのSQLステートメントにパラメータとして渡すことができます。SQLステートメントではJavaBeanのプロパティ名を使用して対応するパラメータの値を取得することができます。
例えば、複数のパラメータを設定するJavaBeanを定義します。
public class MyBean {
private Object param1;
private Object param2;
// getter and setter
}
MyBean bean = new MyBean();
bean.setParam1(value1);
bean.setParam2(value2);
MyBatisのSQL文で、JavaBeanの属性名を使ってパラメータ値を取得します。
<select id="selectByBean" parameterType="your.package.MyBean" resultMap="BaseResultMap">
SELECT * FROM your_table WHERE column1 = #{param1} AND column2 = #{param2}
</select>
これらは、複数のパラメータを渡す一般的な方法のいくつかです。実際の状況に応じて適切な方法を選択してください。