需求:批量插入数据,并返回每条数据的主键(序列),因为这里是采用序列生成唯一的主键的, 其实oracle批量 插入操作有几种,网上百度都是有相关资源的.但是笔者现在的需求是,不仅批量插入数据后,并返回每条数据的主键, 网上查阅了一番始终没有找到,相应办法,倒是针对mysql貌似mybatsi是支持批量返回主键的,因为笔者没有测试,所有不敢妄下言论. 好了,说了这么多,直接进入正题: 1.参照网上的相关资源,如图所示 <insert id="saveEPDetail" useGen…
参考来自: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.效果 执行前,bra…
开发过程中经常遇到需要插入一条数据,并且返回这条数据自增的主键,在MyBatis中只需要在mapper中添加keyProperty属性即可 在mapper中添加keyProperty属性 <insert id="insertAndGetId" parameterType="com.lili.log.dto.LogPay" useGeneratedKeys="true" keyProperty="payId" > i…
需要在insert方法中添加 <insert id="insertSelective" parameterType="com.midou.ott.model.MDActivity" useGeneratedKeys="true" keyProperty="id"> 加上上面红色部分,keyProperty中的id,是MDActivity对象的中的Id 使用时直接从MDActivity对象中获取到ID…
需求:使用批量插入后,需要insert之后的每一条记录的ID 注意:Mybatis3.3.1的版本以后支持批量插入后返回主键ID 示例: domin.java: public class User { private int d; private String name; private String pwd; public long getId() { return id; } public void setId(long id) { this.id = id; } public String…
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User(); user.setUserName("chenzhou"); user.setPassword("xxxx"); user.setComment("测试插入数据返回主键功能"); System.out.println("插入前主键为:…
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User(); user.setUserName("chenzhou"); user.setPassword("xxxx"); user.setComment("测试插入数据返回主键功能"); System.out.println("插入前主键为:…
insertSelective---Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了 https://www.cnblogs.com/xingyunblog/p/6243179.html 列子: <!-- 插入一个商品 --> <insert id="insertProduct" parameterType="domain.model.ProductBean" > <sele…
MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 蕃薯耀 2016年8月24日 10:39:04 星期三 http://fanshuyao.iteye.co…
参考:mybatis添加记录时返回主键id 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作.在使用mybatis作为ORM组件时,可以很方便地达到这个目的.鉴于mybatis目前已经支持xml配置和注解2种方式,所以分别给予详细介绍. 数据表设计: drop table if exists `test`; create table `test` ( `id` ) NOT NULL AUTO_INCREMENT COMMENT 'ID', // 主…
一.前言    数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅. 二.insert元素 属性详解   其属性如下: parameterType ,入参的全限定类名或类型别名 keyColumn ,设置数据表自动生成的主键名.对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置 keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪…
向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键.主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A.B中插入数据(A的主键是B的外键),向A表中插入数据之后,向B表中插入数据时需要用到A的主键. 比如添加一个用户,同时返回插入用户后得到的用户id: /** * 添加用户信息 * @param user * @throws Exception */ public int insertUser(User user) thro…
传递参数为对象TaskEntity, 返回主键结果为Integer 与 主键 task_id 的类型一致即可 <insert id="addTask" parameterType="com.hk.upgrade.entity.TaskEntity" > <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="task_…
我们使用Spring中的JdbcDaoSupport往Mysql中插入数据并返回主键代码,我们使用的mysql数据库,主键在数据库中设置为自增长:该类继承自JdbcDaoSupport,所以能直接使用getJdbcTemplate() public int saveUser(String userName,int age,String password){ getJdbcTemplate().update(new PreparedStatementCreator() { public Prepa…
insert 返回主键值 useGeneratedKeys=“true” parameterType=“USer” keyProperty=“id”, <insert id="insert" useGeneratedKeys="true" parameterType=“Car”  keyProperty="car.id"> INSERT INTO car(customer_id,car_no,car_brand_model,insur…
插入语句xml代码: <insert id="insertUser" parameterType="com.spring.mybatis.po.User"> <!--selectKey获取插入的id值 keyProperty="id":将查询到主键设置到对象中的某个属性上 order="AFTER":执行查询主键ID值的顺AFTER:执行之后获取 resultType:获取返回结果类型(包装类) SELECT…
在myBatis中获取刚刚插入的数据的主键id是比较容易的 , 一般来说下面的一句话就可以搞定了 , 网上也有很多相关资料去查. @Options(useGeneratedKeys = true, keyProperty = "money_record_id") 但是相比较 , 批量插入数据时获取相数据的主键Id就会变得非常难了 , 上面的办法是没用的 . 可以按照如下办法去解决 : 1.新建一个sql如下 , 在一个事务中 , 可以通过如下sql获取到批量插入的数据的第一条数据的主键…
<insert id="insertCharge" parameterType="com.bb.bean.Rechargerecord"> <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> select LAST_INSERT_ID() </selectKey> INSERT…
<!-- 插入数据:返回记录的id值 --> <insert id="insertOneTest" parameterType="org.chench.test.mybatis.model.Test" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> insert into test(name,descr,url,cre…
关于Sequence主键的数据库来说,如: <insert id="add" parameterType="vo.Category"> <selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id"> SELECT SEQ_TEST.NEXTVAL FROM DUAL </selectKey>…
原来之前一直用错了... keyProperty是表示将返回的主键设置为该方法参数的对应属性中去,而不是用返回值的形式的去获取.…
某些情况进行insert时不知道主键值(主键为自增),例如系统新增用户时,有用户序号(主键 自增),用户名,密码.插入时只需插入用户名和密码,之后取得mysql自增的序号. 如下为mysql的usr表结构: 对应的实体类 Mapper parameterType:参数类型,此处为实体类的完整路径.(可省略,mybatis会自动识别参数类型). useGeneratedKeys:令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 M…
具体xml中sql是这样写,但是要注意SQ_USER.Nextval,SQ_USER是序列,你要替换下自己要进行操作的表的序列,不知道序列的话,可以sql查找下,select * from user_sequences查找全部序列,找到该表单序列名称,或者模糊查询表名select * from user_sequences where SEQUENCE_NAME LIKE '%USER%';,找到序列名称替换SQ_USER即可 <insert id="insertSelective&quo…
<insert id="add" parameterType="com.dsa.core.base.model.ProductSync">        insert into tm_sync_product(            <if test="productId!=null">product_id,</if>            <if test="mainLimit!=null&q…
<!--新增账号和权限的关联关系--><insert id="save" useGeneratedKeys="true" keyProperty="id" keyColumn="id">> INSERT INTO auth_account_priority_relationship(account_id,priority_id,gmt_create,gmt_modified) VALUES( #{…
<insert id="insertUser" parameterType="User"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> SELECT LAST_INSERT_ID() </selectKey> insert into users(name, age, g…
<insert id="insertSelective" parameterType="com.xxx.model.XDetail" useGeneratedKeys="true" keyProperty="id"> 主要依靠useGeneratedKeys="true" keyProperty="id"实现…
<insertid=“doSomething"parameterType="map"useGeneratedKeys="true"keyProperty=“yourId"> ... </insert>…
Mybatis批量insert 返回主键 Mybatis从3.3.1版本开始,支持批量插入后返回主键ID.首先对于支持自增主键的数据库使用useGenerateKeys和keyProperty,对于不支持生成自增主键的数据库使用selectKey标签.类似<MyBatis 返回insert操作主键>中单条插入. 使用批量插入,可以减少和数据库交互的次数,但是,数据量应该做一个控制,和for循环类似.首先定义Java Bean Instance: import java.io.Serializa…