忍者ブログ

アラフォーSEの覚書

テニスが好きな職業SEです。 色々な調べものをした時のこととかメモってます。 たまに趣味の事もつぶやきたい。

MyBatis メモ書き

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

MyBatis メモ書き

MyBatisの使い方をちょっとメモ

Mapper XML ファイルのselectタブにparameterTyperesultTypeをセットする。

parameterType
プログラムから渡すもので、Sqlの変数部に渡す値の元になるものを指定する。
List、Mapとかこの二つがあれば基本問題ない気がする。
INTとかもいけるらしいが、やっていない。
Listをセットした場合、変数側をforeachで処理することになるが、
この時はcollectionにlistと記載して、
itemと変数を合わせる。
Mapの場合は、
collectionにkeyを指定して、バインド変数をvalue.item等で処理する。

・Listの例
  <select id="test" parameterType="List" resultType="dto">
    SELECT *
    FROM test
    WHERE id in
     <foreach collection="list" item="item" open="(" separator="," close=")">
       #{item}
     </foreach>
  </select>

MAPの場合、
foreachは関係ないので、MAPのkeyを変数と合わせる。

MAPをListにして渡すとちょっとややこしい・・、でもないかw
MapListにセットしているMap名が必要で、ここではmap
  <select id="test" parameterType="List" resultType="dto">
    SELECT *
    FROM test
    WHERE id in
     <foreach collection="list" item="hogeMap" open="(" separator="," close=")">
       #{map.item}
     </foreach>
  </select>
こんな感じで、itemにmap名、変数部はmap.keyを書く。

では、MAPにMAPのListをもっていたらっ!

  <select id="test" parameterType="Map" resultType="dto">
    SELECT *
    FROM test
    WHERE id in
     <foreach collection="hogeMaplist" item="hogeMap" open="(" separator="," close=")">
       #{hogeMap.item}
     </foreach>
  </select>
注意
 パラメータの内部構造が多段になっている場合は、collectionやitm名を指定する必要があるっ。
 
resultType
ここは受け取る型を記載、MAPとかDTOとか。
DTOの場合、エイリアスを使用しないならパッケージを含めたフルパス.DTOって感じ。
Listで受け取る場合は、Listではなく、LISTの型LongとかStringとかを記載する。
注意
 dtoの場合にはresultMapでList等はresultTypeです。

補足:
バインド変数にしていできる#、$。
#{item}とか$
{item}とか、#は、'(シングルクォート)を自動で付与。
$はそのままの値で処理。

拍手[1回]

PR

コメント

プロフィール

HN:
RF
性別:
非公開

P R