resultType : 正常的返回值。...也就是 PRSP_CRM_ENTERP_ID.nextval 的返回值类型 order : 这个oracle 必须写BEFORE ,mysql 是after 。...如果执行了上面一个新增语句,那么这个 ID 就会映射到实体类中了。。直接取得就好了。。 注意:不能直接取 retID 不然这个永远都是 1。。。
最近开发全栈项目时,前端有个数据行可以被随便修改,所以必须给他一个标识记录该数据行,即向MySQL数据库中插入一条记录后,需要获取此条记录的主键id值返回给前端。...content,name) values(#{articleTitle},#{articleCreateDate},#{articleContent},#{addName}) insert> 这种方式只是返回一个影响行数值...articleCreateDate},#{articleContent},#{addName}) 关键属性 useGeneratedKeys 仅适用于 insert 和 update,这会令 MyBatis...使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如MySQL的自动递增主键字段),默认值:false。...所以要打开设为 true keyProperty 仅适用于 insert 和 update,指定能够唯一识别对象的属性,MyBatis 会使用 getGeneratedKeys 的返回值或 insert
有时候使用mybatis插入数据后,需要用到记录在数据库中的自增id,可以利用keyProperty来返回,赋值给实体类中的指定字段。...单条记录插入并返回 First, if your database supports auto-generated key fields (e.g....id为实体类中的字段名称 多条记录插入并返回 If your database also supports multi-row insert, you can pass a list or an array...}, #{item.password}, #{item.email}, #{item.bio}) 坑:要注意,多条记录时,有可能会出现id没有返回的情况...检查以下几点: 1、Mybatis版本3.3.1及其以上。 2、在Dao中不能使用@param注解。 3、Mapper.xml中使用list变量接受Dao中的集合。
1.1 xml 配置主键返回 insert into orders value(null, #{ordertime}, #{total}, #{uid}) 1.2 注解配置主键返回...insert into orders values(null, #{ordertime}, #{total}, #{uid})") Integer insert(Orders orders); 1.3 获取主键...// 实体类对象,属性值省略 Orders orders; // 插入,返回值为影响的行数 Integer rows = sqlSession.getMapper(OrdersDao.class).insert
这是最近在实现perfect-ssm中的一个功能时碰到的一个小问题,觉得需要记录一下,向MySQL数据库中插入一条记录后,需要获取此条记录的id值,以生成对应的key值存入到redis中,id为自增int...主键。...add_name) values(#{articleTitle},#{articleCreateDate},#{articleContent},#{addName}) 这种方式只是返回一个影响行数值...=null); System.out.println("insert后article的id:"+article.getId()); } 结果如下: ?
Mybatis映射文件深入 - 新增数据后返回主键ID - 动态SQL - SQL片段 前言 在前面的篇章中,我们已经认识了如何使用 resultMap标签 映射查询的结果集字段、多条件查询、模糊查询。...下面我们继续来深入认识一下 MyBatis 的映射文件。 新增数据后,返回主键 ID 应用场景 向数据库保存一个user对象后, 然后在控制台打印此新增user的主键值(id) # 点外卖 1....需要返回这条记录的主键, 然后给第三方配送平台, 送外卖 实现案例一:基于MyBatis 框架自带的主键返回功能 ① UserMapper接口 /* * # 复杂操作:插入一条数据返回对应的主键...int i = userMapper.addUser(user); System.out.println("插入数据的行数: " + i); //查询插入后返回的主键...2.4 知识小结 MyBatis映射文件配置 :查询 :插入 :修改 :删除 :插入返回主键 <where
1.场景介绍: 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条数...,那么这个时候我们想要得到相应的这条新增数据的ID,该怎么办呢?...2.插入数据返回自增主键ID方法(一) 在映射器中配置获取记录主键值 xml映射: 在xml中定义useGeneratedKeys为true,返回主键id的值,keyProperty和keyColumn...需要注意的是,在MyBatis中添加操作返回的是记录数并非记录主键id。...System.out.println("id = " + student.getId()); // 执行添加操作之后通过Java对象获取主键属性值 添加批量记录时返回主键ID 如果希望执行批量添加并返回各记录主键字段值
XML方式 返回自增主键 insert into sys_user(...values(#{userName},#{password},#{email},#{info},#{createTime}) 使用useGeneratedKeys设置为true后..., MyBatis会使用JDBC的getGeneratedKeys方法取出由数据库内部生成的主键 ....由于要使用数据库返回的主键值 , 所以SQL上下两部分的列中去掉了 id 列和对于的 #{id} 属性 返回非自增主键 采用标签获取主键的值 , 这种方式对提供和不提供主键自增功能的数据库同样适用...) selectKey标签的 keyProperty和上面useGeneratedKeys的用法和含义一样 , 这里的resultType用于设置返回值类型
SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式。...); } catch (Exception e) { logger.error(e.getMessage()); } return 0; } **map中会增加返回的主键
使用mybatis时,insert方法如何返回主键?...( #{user.name},#{user.age},#{user.address}) 下面这个是关键:order的值是after,表示先执行insert语句,然后再选择最后一个主键...,返回到实体类中。 ...age,address) values ( #{name},#{age},#{address}) 然后,user里需要提供id 的get set方法,添加方法执行完后id
主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A、B中插入数据(A的主键是B的外键),向A表中插入数据之后,向B表中插入数据时需要用到A的主键。...比如添加一个用户,同时返回插入用户后得到的用户id: /** * 添加用户信息 * @param user * @throws Exception */...", user); session.commit(); return user.getUserId();//返回插入数据库后得到的用户id } 这里总结一下mybatis...插入数据时返回主键的4种情况:mysql环境下主键自增、mysql环境下主键为uuid、mysql环境下主键自增、mysql环境下主键为uuid。 ...,查询并返回刚插入数据的主键(但是单独执行这条语句只会返回0)。
添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前端调用中需要插入多个表的场景。...除了添加单条记录时获取主键值,有时候可能需要获取批量添加记录时各记录的主键值,MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值。...需要注意的是,在MyBatis中添加操作返回的是记录数并非记录主键id。...获取主键ID实现原理 需要注意的是,不论在xml映射器还是在接口映射器中,添加记录的主键值并非添加操作的返回值。实际上,在MyBatis中执行添加操作时只会返回当前添加的记录数。...https://blog.csdn.net/jiangeeq/article/details/55047116 Mybatis批量插入返回插入成功后的主键id https://blog.csdn.net
keyProperty="id" 3: keyProperty 这个设置的是 你传入对象的属性名,不是你数据表的字段 如果以上情况都满足,那么你很有可能犯了一个和我一样的错误 网上大部分教程在写 insert对象并返回自增主键的
<selectKey resultClass="long" keyProperty="trade_id"> <![CDATA[ SELEC...
下面记录MyBatis关于INSERT操作的笔记,以便日后查阅。...对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置 keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中...MySQL和SQLServer执行auto-generated key field,因此当数据库设置好自增长主键后,可通过JDBC的getGeneratedKeys方法获取。...parameterType="EStudent"> insert into TStudent(name, age) values(#{name}, #{age}) </insert 四、执行INSERT操作后获取记录主键...八、参考 http://mybatis.github.io/mybatis-3/zh/dynamic-sql.html
mybatis执行insert语句后,返回当前插入数据主键的方法 keyProperty区分大小写 #这样查询没有返回主键值 <insert id="addLog" useGeneratedKeys="
在整合mybatis-plus后,使用他自带的insert新增方式,不需要手动设置id,可以采用他自己的算法设置id,如下: ps:这两个注解一定不要忘了,不然他找不到对应的表和字段,Idtype
一、Mybatis执行插入语句后可以返回主键ID吗? 在想写什么内容的时候,正好看到一个基础面试题上有这个问题,就把它记录下来了。 面试官:你说Mybatis执行插入语句后可以返回主键ID吗??...keyProperty属性,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中,也就是你实体类中,对应数据库的主键id。...最后在实体类中,要有主键的get与set方法,满足后,在impl层controller层,直接实体类.getId() 即可获取本次插入后的主键ID,返回前端即可。...二、Mybatis-Plus在执行插入语句后返回自定义ID 面试官:那你会用Mybatis-Plus吗?Mybatis-Plus如何做这件事情啊,有简单的方式吗? ...一步一步道来: 可以直接使用Mybatis-Plus的sava方法,或者mapper层的insert方法,它都会将返回的结果自动填充进你映射的的实体类。从而可以直接获取到你的数据。
往数据库插入数据后,返回数据主键信息。有两种方法。 一种:使用insert标签中的useGeneratedKeys属性和keyProperty属性组合使用获取主键信息。...-- 插入用户useGeneratedKeys="true"表示返回生成的主键keyProperty 表示把返回的key注入到返回值的哪个属性中keyProperty="id" 表示把返回的id主键值注入到返回对象的...into t_user(last_name,sex) values(#{lastName},#{sex})12345678910标签的使用 selectKey 通过前置或后置操作,返回数据的主键值...插入记录并返回主键主要是在标签中添加一个的作用主要就是为了返回插入记录后,自动生成的主键信息 order 表示执行的顺序。 AFTER 表示在插入之后执行。 BEFORE 在插入之前执行。...keyProperty 属性设置对象的哪个属性接收 resultType 属性设置返回值类型。
往数据库插入数据后,返回数据主键信息。有两种方法。 一种:使用insert标签中的useGeneratedKeys属性和keyProperty属性组合使用获取主键信息。...-- 插入用户 useGeneratedKeys="true" 表示返回生成的主键 keyProperty 表示把返回的key注入到返回值的哪个属性中 keyProperty...="id" 表示把返回的id主键值注入到返回对象的id属性中 --> 的作用主要就是为了返回插入记录后,自动生成的主键信息 order 表示执行的顺序。...-- selectKey标签主要用于插入数据后,获取生成的主键。 order 表示执行的顺序,AFTER表示在插入之后执行。
领取专属 10元无门槛券
手把手带您无忧上云