批量插入

一个使用MyBatis向Oracle数据库中新增/批量新增数据的例子

你说的曾经没有我的故事 提交于 2020-04-10 17:37:30
我的电脑操作系统版本为Win7旗舰版(ServicePack1),Oracle版本为Oracle11g 程序使用的jar包有:mybatis-3.2.2.jar、ojdbc14-10.2.0.2.0.jar 本例中使用的配置文件mybatis-config.xml、PersonInfo类以及Oracle数据库的表结构,可以参见我的另一篇Blog《一个简单的MyBatis连接Oracle数据库的例子》( http://my.oschina.net/Tsybius2014/blog/626206 ) PersonInfoMapper.java代码如下: import java.util.List; public interface PersonInfoMapper { //获取Sequence作为插入数据库中数据的主键 Long getIdFromSequence(); //插入一条数据 void addPersonInfo(PersonInfo personInfo); //插入多条数据1 void addPersonInfoBatch(List<PersonInfo> list); //插入多条数据2 void addPersonInfoBatch2(List<PersonInfo> list); } 对应的XML文件,PersonInfoMapper.xml代码如下: <?xml

yii2批量添加的问题

本小妞迷上赌 提交于 2019-12-03 11:51:13
作者:白狼 出处: http://www.manks.top/yii2_batch_insert.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 批量添加这个操作嘛,实际开发中说用,那肯定是要用得到的,不然你看怎么还那么多人天天没事百度这个google那个的,对吧,活生生的需要啊 我们之前写过关于yii2中如何通过gridview批量删除数据,当然,着重点在于怎么去操作gridview了,今儿我们来好好谈谈yii2如何批量添加数据? 有同学嚷嚷了,这还不简单,我foreach一循环,每个循环里面直接把数据插入到数据库,简单粗暴完事!我擦嘞,哥,你要是跟我在一个公司,我觉得第二天见到你的概率可就不大了! 话不多说,说多了你在骂我,我们步入正题,先看一个简单到小学生都认识的表结构 //test id name 我们现在就是要在yii2中对这张数据表批量插入10条数据 我们想要的方式肯定是下面这样的,一条sql多么干脆直接了事 insert into test (name) values ('zhangsan'), ('lisi'); 分析都分析完了,好吧,赶紧看看具体实现 //假如 $names = ['zhangsan', 'lisi']; $data = []; foreach ($names $k

Mybatis3.3.x技术内幕(十五):Mybatis之foreach批量insert,返回主键id列表(修复Mybatis返回null的bug)

被刻印的时光 ゝ 提交于 2019-11-27 08:33:06
Mybatis在执行批量插入时,如果使用的是for循环逐一插入,那么可以正确返回主键id。如果使用动态sql的foreach循环,那么返回的主键id列表,可能为null,这让很多人感到困惑;本文将分析问题产生的原因,并修复返回主键id为null的问题。该问题在开源中国社区,以及网络上,已经有很多人遇到并发帖咨询,似乎都没有得到期望的解决结果。今天,我将带领大家,分析并解决该问题,让foreach批量插入,返回正确的id列表。 <insert id="insertStudents" useGeneratedKeys="true" keyProperty="studId" parameterType="java.util.ArrayList"> INSERT INTO STUDENTS(STUD_ID, NAME, EMAIL, DOB, PHONE) VALUES <foreach collection="list" item="item" index="index" separator=","> (#{item.studId},#{item.name},#{item.email},#{item.dob}, #{item.phone}) </foreach> </insert> 以上便是Mybatis的foreach循环,其要生成的sql语句是:insert into