返回主键值的insert操作 应用背景 图示说明 在上述业务背景下,涉及两张数据表的关联操作:用户表 + 用户积分表 传统操作:在对用户表执行完插入语句后,再次查询该用户的uid,将该uid作为外键,最后插入积分数据到用户积分表 数据库操作次数:3次 优化操作:在对用户表执行完插入语句后返回该用户的主键uid,将该uid作为外键,再插入用户积分数据到用户积分表 数据库操作次数:2次 优化操作可以减少对数据库的操作次数 代码实现 UsersMapper.java接口 package com.exa…
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…
目录 添加单一记录时返回主键ID 在映射器中配置获取记录主键值 获取新添加记录主键字段值 添加批量记录时返回主键ID 获取主键ID实现原理 添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前端调用中需要插入多个表的场景. 除了添加单条记录时获取主键值,有时候可能需要获取批量添加记录时各记录的主键值,MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值. 添加单一记录时返回主键ID 添加一条记录时返回主键值,在xml映射器和接口映射器中都可以实现. 在映射器中配置获取…
Mybatis批量insert 返回主键 Mybatis从3.3.1版本开始,支持批量插入后返回主键ID.首先对于支持自增主键的数据库使用useGenerateKeys和keyProperty,对于不支持生成自增主键的数据库使用selectKey标签.类似<MyBatis 返回insert操作主键>中单条插入. 使用批量插入,可以减少和数据库交互的次数,但是,数据量应该做一个控制,和for循环类似.首先定义Java Bean Instance: import java.io.Serializa…
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User"> insert into us…
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User"> insert into us…
某些情况进行insert时不知道主键值(主键为自增),例如系统新增用户时,有用户序号(主键 自增),用户名,密码.插入时只需插入用户名和密码,之后取得mysql自增的序号. 如下为mysql的usr表结构: 对应的实体类 Mapper parameterType:参数类型,此处为实体类的完整路径.(可省略,mybatis会自动识别参数类型). useGeneratedKeys:令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 M…
package tk.mybatis.mapper.common.special; import org.apache.ibatis.annotations.InsertProvider; import org.apache.ibatis.annotations.Options; import tk.mybatis.mapper.provider.SpecialProvider; public interface InsertUseGeneratedKeysMapper<T> { @Optio…
插入语句xml代码: <insert id="insertUser" parameterType="com.spring.mybatis.po.User"> <!--selectKey获取插入的id值 keyProperty="id":将查询到主键设置到对象中的某个属性上 order="AFTER":执行查询主键ID值的顺AFTER:执行之后获取 resultType:获取返回结果类型(包装类) SELECT…
官网:http://www.mybatis.org/mybatis-3/index.html 在使用mybatis作为ORM框架时,我通常更喜欢使用注解而非xml配置文件的方式.业务场景:添加记录之后需要返回自己自增长的主键字段值.通常,我们会将DAO层写成如下代码(以添加员工Staff为例): public interface StaffDAO { @InsertProvider(type=StaffProvider.class, method="buildSinleStaff")…