プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

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>