読者です 読者をやめる 読者になる 読者になる

mybatis で、MULTIPLE INSERT を書く

MyBatisで、MUTIPLE  INSERT を実行するのは、foreach を使います。

例)
//テーブルのデータ定義クラス→Item
public class Item implements Serializable{
   public String item;
   public int price;
   public Item(){
   }
}

// mybatis の SQLセッション、インジェクトされるものとします。
@Inject SqlSession session ;

Map<String, Object> map = new HashMap<String, Object>();


List<Item> list = new ArrayList<Item>();

// リストに、1レコード分のItem を格納

list.add(item);
  :
  :

// Map に、foreache で参照する Key で、リストを格納
map.put("itemList", list);

session.insert( "org.Mapper.addList", map );

で実行

SQLMapは、、、

<insert id="addListparameterType="map">
INSERT INTO items ( item, price ) VALUES
   <foreach collection="itemList" item="e" separator=",">
      ( #{e.item}, #{e.price} )
   </foreach>
</insert>