MyBatis バルクインサート(MySql編)
■Mapper.java
メソッド名を定義する
【基本構文】
int メソッド名(@Param("パラメーター名") List型 変数名);
【使用例】
int bulkInsert(@Param("listCalendar") List<TbCalendar> listCalendar);
■Mapper.xml
メソッド内容を定義する
【基本構文】
<!--
<insert></insert>内にバルクインサートの内容を記述
<foreach></foreach>で繰り返し処理を記述
-->
<insert id="メソッド名" parameterType="パラメーターの型">
insert into テーブル名
(カラム1,カラム2, カラムn)
values
<foreach collection="Mapper.javaで設定したパラメーター名" item="変数" separator="区切り文字">
(
#{変数.カラム1に対応するドメインクラスのフィ-ルド名},
#{変数.カラム2に対応するドメインクラスのフィ-ルド名},
#{変数.カラムnに対応するドメインクラスのフィ-ルド名}
)
</foreach>
</insert>
【使用例】
<insert id="bulkInsert" parameterType="java.util.List">
insert into tb_schedule
(year_nbr, month_nbr, day_nbr)
values
<foreach collection="listCalendar" item="list" separator=",">
(
#{list.yearNbr},
#{list.monthNbr},
#{list.dayNbr}
)
</foreach>
</insert>