list批量添加数据 您所在的位置:网站首页 list集合怎么添加数据 list批量添加数据

list批量添加数据

2022-05-23 23:11| 来源: 网络整理| 查看: 265

项目中会遇到这样的情况,查询出多条记录(一个List对象集合),一次性要插入多条数据到数据库中,下面就拿Data类来看看两种插入方法:

方法一:

  Mybatis本身只支持逐条插入,比较笨的方法,就是遍历一个List,循环中逐条插入,比如下面这段代码

[java] view plain copy print ? for(Data d : ListData) {  dataMapper.insertSelective(d);  }   for(Data d : ListData) { dataMapper.insertSelective(d); }   这样做的后果就是效率严重低下,因为每次循环都要向数据库提交一次,数据少的时候看不出来,但是如果上千条,花费的时间就相当多了;

方法二:

  Mybatis本身是很灵活的,因为可以自己在XML文件中编写sql进行操作,那就可以一次性将插入到数据库中,这样只用向数据库提交一次,性能也可以提高不少。此处需要注意,对于不同数据库,mapper.xml里的配置方式不一样,我用的是Oracle,oracle批量插入记录的书写方式跟sqlServer,MySql的不一样,下面来看一个Oracle例子:

 首先,在DataMapper.java 接口类中加入接口:

[java] view plain copy print ? int batchInsert(List datas);   int batchInsert(List datas);   然后,在xxxMapper.xml 中编写对应的实现sql,我使用的是oracle,如果是mysql或sqlserver,可能sql语句会略有区别吧:

[xml] view plain copy print ?     insert into DATA (ID, TEXT, STAUTS)       select  #{item.id,jdbcType=VARCHAR},  #{item.text,jdbcType=VARCHAR},  #{item.stauts,jdbcType=VARCHAR}   from dual        insert into DATA (ID, TEXT, STAUTS) select



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有