4

Please let me know, how to perform batch insert/update in mybatis using annotated mappers.

2 Answers2

9

you can do it like this:

@Insert({
            "<script>",
            "insert into mybatis_demo (name, age)",
            "values ",
            "<foreach  collection='dmoList' item='dmo' separator=','>",
            "( #{dmo.name,jdbcType=VARCHAR}, #{dmo.age,jdbcType=INTEGER})",
            "</foreach>",
            "</script>"
    })
    int insertBatch(@Param("dmoList") List<MybatisDemoDMO> dmoList);
Persia
  • 855
  • 5
  • 8
2

do in simple way

@Insert({"<script>", 
        "insert into  user_master (first_name,last_name) values ",
        "<foreach collection='userList' item='user' index='index' open='(' separator = '),(' close=')' >#{user.first_name},#{user.last_name}</foreach>",
        "</script>"})
    int insertUserList(@Param("userList") List<UserNew> userList);

It's work perfect for me and i inserted bulk record in my PostgreSQL database using above single insert.

Vijay Gajera
  • 1,306
  • 11
  • 13