首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

深入浅出mybatis返回主键ID

除了添加单条记录时获取主键值,有时候可能需要获取批量添加记录时各记录的主键值,MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值。...添加单一记录时返回主键ID 添加一条记录时返回主键值,在xml映射器和接口映射器中都可以实现。...-- 插入数据:返回记录主键id值 --> <insert id="insertOneTest" parameterType="org.chench.test.mybatis.model.Test...需要注意的是,在MyBatis中添加操作返回的是记录数并非记录主键id。...获取主键ID实现原理 需要注意的是,不论在xml映射器还是在接口映射器中,添加记录的主键值并非添加操作的返回值。实际上,在MyBatis中执行添加操作时只会返回当前添加的记录数。

3.3K20

Mybatis映射文件深入 - 新增数据后返回主键ID - 动态SQL - SQL片段

Mybatis映射文件深入 - 新增数据后返回主键ID - 动态SQL - SQL片段 前言 在前面的篇章中,我们已经认识了如何使用 resultMap标签 映射查询的结果集字段、多条件查询、模糊查询。...下面我们继续来深入认识一下 MyBatis 的映射文件。 新增数据后,返回主键 ID 应用场景 向数据库保存一个user对象后, 然后在控制台打印此新增user的主键值(id) # 点外卖 1....需要返回这条记录的主键, 然后给第三方配送平台, 送外卖 实现案例一:基于MyBatis 框架自带的主键返回功能 ① UserMapper接口 /* * # 复杂操作:插入一条数据返回对应的主键...MyBatis框架自动的主键返回功能,而有些时候,我们的主键有可能不是自增 ID,有可能是自己生成的 UUID。...2.4 知识小结 MyBatis映射文件配置 :查询 :插入 :修改 :删除 :插入返回主键 <where

99030

mybatis插入数据后返回自增主键ID详解

1.场景介绍: ​ 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条数...,那么这个时候我们想要得到相应的这条新增数据的ID,该怎么办呢?...2.插入数据返回自增主键ID方法(一) 在映射器中配置获取记录主键值 xml映射: 在xml中定义useGeneratedKeys为true,返回主键id的值,keyProperty和keyColumn...(name,age) values (#{name},#{age})") void insert(Student stu); 获取新添加记录主键字段值 需要注意的是,在MyBatis中添加操作返回的是记录数并非记录主键...System.out.println("id = " + student.getId()); // 执行添加操作之后通过Java对象获取主键属性值 添加批量记录时返回主键ID 如果希望执行批量添加并返回各记录主键字段值

12K30

MyBatis框架点滴】——mybatis插入数据返回主键(mysql、oracle)

", user); session.commit(); return user.getUserId();//返回插入数据库后得到的用户id }   这里总结一下mybatis...插入数据时返回主键的4种情况:mysql环境下主键自增、mysql环境下主键为uuid、mysql环境下主键自增、mysql环境下主键为uuid。   ...,查询并返回刚插入数据的主键(但是单独执行这条语句只会返回0)。...最小值=1 NOCYCLE; -- 不循环   利用USER_ID_SEQ.NEXTVAL 获得要插入数据的主键: <insert id="insertUser" parameterType="com.danny.mybatis.po.User...UUID时   用oracle自带的SYS_GUID()方法获得随机的GUID作为主键: <insert id="insertUser" parameterType="com.danny.mybatis.po.User

1.9K20

Mybatis【6】-- 插入数据之后怎么获取主键id

代码直接放在Github仓库【https://github.com/Damaer/Mybatis-Learning/tree/master/mybatis-05-CURD 】 需要声明的是:此Mybatis...1.useGeneratedKeys 设置主键自增 2.使用selectKey 查询主键 我们知道很多时候我们有一个需求,我们需要把插入数据后的id返回来,以便我们下一次操作。..."设置主键的字段 3.parameterType="Student"设置传入的类型 4.注意:虽然有返回类型,但是我们不需要手动设置返回的类型,这个是由框架帮我们实现的,所以对应的接口方法也是没有返回值的...5.实体类中id属性字段一定需要set以及get方法 2.使用selectKey 查询主键 <insert id="insertStudentCacheId" parameterType="Student...其实,我们的接口中可以有返回值,但是这个返回值不是id,而是表示插入后影响的行数,此时sql中仍和上面一样,不需要写返回值。

4.5K30

MyBatis在insert插入对象时,返回自增主键

首先你要确定几点 1: 你数据表的ID 是不是 设置了自增?如果没有,那么一切都是徒劳 2: 必须的几个属性你添加了么?...useGeneratedKeys="true"(默认是false) keyProperty="id" 3: keyProperty 这个设置的是 你传入对象的属性名,不是你数据表的字段 如果以上情况都满足...,那么你很有可能犯了一个和我一样的错误 网上大部分教程在写 insert对象并返回自增主键的 demo 的时候,都是直接传入对象,而没有用@Param注解 其实他们的区别在这里 keyProperty...="id" 如果你不用 @Param注解 ,那么你在 #{xxx}里写的是 对象的属性 如果你使用 @Param注解,那么相当于你给参数对象 命名了,那么你在#{xxx}里写的就是 命名参数.属性 但是你忘了

2.2K20

基于Saas主键表生成主键id

1.主键生成策略方式 ? 主键生成策略 2.基于Saas主键表生成主键id流程 由于我们的系统时基于Saas的,因此生成主键时,需要以租户id(TenantId)为基础进行生成。...为了生成的id符合我们的租户的要求,通常都会现将租户表建好,然后基于租户表中的租户id进行主键id的生成。此时便产生基于租户id生成主键,那么怎样生成主键id呢?可以查看下图: ?...基于多租户生成方式 3.主键id生成实现的具体方式 首先需要对当前的id进行拦截操作,也即使用aop的切面Aspect对切点进行拦截,在进行新增的时候进行拦截: @Pointcut("execution...: 通过字节码拿到声明的方法getId,如果此时存在id,则说明此时的操作是更新操作,因此直接返回。...如果当前通过字节码拿到的声明方法getTenant,通过租户方法拿到租户id。拿到租户id后,就可以进行主键id获取了。

1.7K20

‍面试官问:MybatisMybatis-Plus执行插入语句后可以返回主键ID吗? ‍我:看我回答...

一、Mybatis执行插入语句后可以返回主键ID吗? 在想写什么内容的时候,正好看到一个基础面试题上有这个问题,就把它记录下来了。 ‍面试官:你说Mybatis执行插入语句后可以返回主键ID吗??...()返回的是最后一个ID值意思。...keyProperty属性,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中,也就是你实体类中,对应数据库的主键id。...最后在实体类中,要有主键的get与set方法,满足后,在impl层controller层,直接实体类.getId() 即可获取本次插入后的主键ID返回前端即可。...二、Mybatis-Plus在执行插入语句后返回自定义ID ‍面试官:那你会用Mybatis-Plus吗?Mybatis-Plus如何做这件事情啊,有简单的方式吗? ‍

2.4K20
领券