方法一:使用 Insert All into 实现
1.创建实体类(DemoBean)方便处理数据
public classDemoBean { privateString demo1; privateString demo2; privateString demo3; privateString demo4; publicString getDemo1() { returndemo1; } public voidsetDemo1(String demo1) { this.demo1 =demo1; } publicString getDemo2() { returndemo2; } public voidsetDemo2(String demo2) { this.demo2 =demo2; } publicString getDemo3() { returndemo3; } public voidsetDemo3(String demo3) { this.demo3 =demo3; } publicString getDemo4() { returndemo4; } public voidsetDemo4(String demo4) { this.demo4 =demo4; } }
2.mapper 中的批量插入接口方法
/*** 批量插入数据 入表(batch_demo) * @paramlist */@Insert({"<script>", "INSERT ALL ", "<foreach collection='list' item='element' index='index' separator=''>", "INTO batch_demo(demo1,demo2,demo3,demo3,demo4) ", "VALUES(", "#{element.demo1,jdbcType=VARCHAR},", "#{element.demo2,jdbcType=VARCHAR},", "#{element.demo3,jdbcType=VARCHAR},", "#{element.demo4,jdbcType=VARCHAR})", "</foreach>", "SELECT * FROM dual", "</script>"}) void batchAddDemo(@Param("list") List<DemoBean> list);
3.调用即可
方法二:使用 insert into ... select ... from dual 实现;
相较于方法一效率快点
mapper 中的批量插入接口方法
/*** 批量插入数据 入表(batch_demo) * @paramlist */@Insert({"<script>", "INSERT INTO batch_demo(demo1,demo2,demo3,demo3,demo4) (", "<foreach collection='list' item='element' index='index' separator='union all'>", " (select", "#{element.demo1,jdbcType=VARCHAR},", "#{element.demo2,jdbcType=VARCHAR},", "#{element.demo3,jdbcType=VARCHAR},", "#{element.demo4,jdbcType=VARCHAR}", "from dual)" "</foreach>", ")", "</script>"}) void batchAddDemo(@Param("list") List<DemoBean> list);