ステートメントにパラメータを複数渡す

提供: tknotebook
2016年11月16日 (水) 06:56時点におけるNakamuri (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

メインページ>コンピュータの部屋#Java>MyBatis Tips


MyBatis では select, insert, update, delete ステートメント(メソッド)を Mapper インターフェースに 定義できますが、パラメータは1個のみと思い込んでいる方がおられるようです。

例えば、インターフェースの定義は

public interface CardMapper {
    /**
      * キーでカードを取得.
      * @param card カード
      * @return カード
      */
     Card findByKey(String userid, String english);
}

XMLでの定義は

<select id="findByKey" resultMap="CardResult">
    select * from cards where userid=#{param1} and english=#{param2}
</select>

とすれば

CardMapper cardMapper = sqlSession.getMapper(CardMapper.class);
Card card = cardMapper.findByKey(userid, english);

と呼び出せます。

XML内の OGNLの式で param1, param2, ・・・ を使うのがこつ。1個目、2個目、・・・の引数を表します。