2017.9.15 mybatis批量插入后实现主键回填
参考来自:mybatis mysql 批量insert 返回主键
注意:必须要在mybatis3.3.1及其以上才能实现。
1.service
List branchEntryList = (ArrayList<Entry>)entryMap.get("branchEntryList");
branchDao.insertBatch(branchEntryList);
2.dao

3.xml
注意这里是list,不管参数名叫什么,这里都是list。

4.效果
执行前,branchEntryList里的对象是没有id的值的。

执行完后,查看变量branchEntryList,可以看到主键已经回填了。

5.其他
在查资料的时候,说这种方式支持map和list。
于是使用Map:
(1)insertMap.insert("branchEntryList",branchEntryList);
(2)int insertBatch(Map<String,Object> insertMap);
(3)parameterType="java.util.Map"
(4)<foreach collection="branchEntryList" ...
但是主键并没有回填。将Map的类型改为<String,List<Entry>>,主键则成功回填。所以使用此项功能的时候,List<Entry>必须指明,不管是不是放在map里。
2017.9.15 mybatis批量插入后实现主键回填的更多相关文章
- mybatis批量插入并返回主键(序列)-oracle
需求:批量插入数据,并返回每条数据的主键(序列),因为这里是采用序列生成唯一的主键的, 其实oracle批量 插入操作有几种,网上百度都是有相关资源的.但是笔者现在的需求是,不仅批量插入数据后,并返回 ...
- Mybatis之MySql批量insert后返回主键
需求:使用批量插入后,需要insert之后的每一条记录的ID 注意:Mybatis3.3.1的版本以后支持批量插入后返回主键ID 示例: domin.java: public class User { ...
- myBatis获取批量插入数据的主键id
在myBatis中获取刚刚插入的数据的主键id是比较容易的 , 一般来说下面的一句话就可以搞定了 , 网上也有很多相关资料去查. @Options(useGeneratedKeys = true, k ...
- Mybatis返回插入数据的主键的两种方式
方式一: 需要在映射文件中添加如下片段: <insert id="insertProduct" parameterType="domain.model.Produc ...
- MyBatis中插入并返回主键
开发过程中经常遇到需要插入一条数据,并且返回这条数据自增的主键,在MyBatis中只需要在mapper中添加keyProperty属性即可 在mapper中添加keyProperty属性 <in ...
- 2017.9.15 postgresql批量插入造成冲突后执行更新
参考来自:https://stackoverflow.com/questions/40647600/postgresql-multi-value-upserts/46233907#46233907 1 ...
- mybatis获取插入的语句主键(自增主键)
<insert id="insertUser" parameterType="User"> <selectKey keyProperty=&q ...
- Mybatis配置插入数据返回主键ID
需要在insert方法中添加 <insert id="insertSelective" parameterType="com.midou.ott.model.MDA ...
- mybatis批量插入oracle
<insert id="batchInsert" parameterType="java.util.List"> INSERT INTO TEST( ...
随机推荐
- poj 2367 拓扑排序入门
Description The system of Martians' blood relations is confusing enough. Actually, Martians bud when ...
- Windows转移FSMO角色
转移 FSMO 角色若要使用 Ntdsutil 实用工具转移 FSMO 角色,请按照下列步骤操作:1.登录到基于 Windows 2000 Server 或基于 Windows Server 2003 ...
- 转:android listview局部刷新和模拟应用下载
在 android开发中,listview是比较常用的一个组件,在listview的数据需要更新的时候,一般会用 notifyDataSetChanged()这个函数,但是它会更新listview中所 ...
- foj Problem 2107 Hua Rong Dao
Problem 2107 Hua Rong Dao Accept: 503 Submit: 1054Time Limit: 1000 mSec Memory Limit : 32768 K ...
- matlab 分析wav波形
[x,fs,bits]=wavread('d.wav', [1 5000]); % sound(x, fs, bits); N = length(x); n = 0 : N-1; t = n/fs; ...
- 在cocos2d中实现真正意思上的图片放大和缩小
http://www.cnblogs.com/dinghing154/archive/2012/08/05/2623970.html 在编写程序的时候我们常常使用self.scale来让我们使用的图片 ...
- 信号槽库:sigslot.h和sigc++使用
用qt的知道,qt有方便简单的信号槽机制,但需要专门的qt工具处理. 如果想直接使信号槽就可以使用sigslot库,或者sigc++库,或者boost中的signals,这里介绍sigslot和sig ...
- Linux单机安转Spark
安装Spark需要先安装jdk及安装Scala. 1. 创建目录 > mkdir /opt/spark > cd /opt/spark 2. 解压缩.创建软连接 > tar z ...
- virtualbox centos6.6 minimal 与宿主机win7共享文件夹
1.virtualbox, 设置-共享文件夹,设置好共享文件夹win7dir 2.centos 创建文件夹比如share 3.mount -t vboxsf win7dir /root/share 4 ...
- HDU 2546 饭卡【贪心+01背包】
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...