「ステートメントにパラメータを複数渡す」の版間の差分

提供: tknotebook
移動: 案内検索
 
 
1行: 1行:
 
[[Category:コンピュータ]][[Category:Java]][[Category:MyBatis]]
 
[[Category:コンピュータ]][[Category:Java]][[Category:MyBatis]]
[[メインページ]]>[[コンピュータの部屋#Java]]>[[MyBtis Tips]]
+
[[メインページ]]>[[コンピュータの部屋#Java]]>[[MyBatis Tips]]
  
  

2016年11月16日 (水) 06:56時点における最新版

メインページ>コンピュータの部屋#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個目、・・・の引数を表します。