SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式。...Mapper(Oracle) select wxsh_seq.nextval as id from dual </selectKey
一种:使用子元素selectKey标签执行sql语句获取。 标签的使用 selectKey 通过前置或后置操作,返回数据的主键值。...插入记录并返回主键主要是在标签中添加一个 的作用主要就是为了返回插入记录后,自动生成的主键信息 order 表示执行的顺序。... insert into t_user(last_name,sex) values(#{lastName},#{sex}) selectKey 返回Oracle...dual
如果你在元素中使用节,你就能获得一个预先生成的key.。下面的例子演示了这种方法: SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL </selectKey...resultClass="int" Property="id" > SELECT @@IDENTITY AS ID ...> 节返回一个从sql server生成的自动生成关键字。
一、使用元素 元素来获取主键值。...-- 指定databaseId表示使用oracle数据库查询不同 --> 元素来获取自动生成的主键值。...其中resultType属性指定了返回值类型,keyProperty属性指定了需要设置主键值的对象属性名,order属性则指定了执行的时间点(before/after)。...总之,在MyBatis中获取自动生成的主键值可以通过和useGeneratedKeys属性两种方式实现。
其实可以通过 mybatis 的 selectKey 标签来解决这个问题。 selectKey 这个标签大家基本上都用过,比如在插入数据的时候,返回插入数据的纪录。...如: SELECT LAST_INSERT_ID()... insert into …… resultType :返回的类型,为简单类型。 ...此处用法用法就是当 insert into 执行后 执行 selectKey 的内容将数据库的最后一个id 查询出来映射到传入数据对像的ID 属性。 写更新语句,并将更新的纪录的ID 返回出来。...原理 此处的 keyProperty=’id’ 是指将查询出来的id 映射到传入
其实可以通过 mybatis 的 selectKey 标签来解决这个问题。 selectKey 这个标签大家基本上都用过,比如在插入数据的时候,返回插入数据的纪录。...如: SELECT LAST_INSERT_ID()... insert into …… resultType :返回的类型,为简单类型。 ...此处用法用法就是当 insert into 执行后 执行 selectKey 的内容将数据库的最后一个id 查询出来映射到传入数据对像的ID 属性。...原理 此处的 keyProperty=’id’ 是指将查询出来的id
<selectKey keyProperty=...否则selectKey的结果没法保存,如果入参是个Map类型,就没有这个限制。...3.这种方式只是利用了selectKey会多执行一次查询来实现的,但是如果你同时还需要通过selectKey获取序列或者自增的id,就会麻烦很多(oracle麻烦,其他支持自增的还是很容易),例如我在上一篇中利用...selectKey 获取主键Id。...4.建议单独查看学习一下selectKey的用法。
写上 SELECT...PRSP_CRM_ENTERP_ID.nextval FROM DUAL 其中:PRSP_CRM_ENTERP_ID.nextval 是oracle...不要采坑 mysql 中 如下: SELECT LAST_INSERT_ID() AS ID </selectKey...operationTime}, #Xml代码 insert id="insert" parameterType="cn.***.beans.LogObject" > selectKey
select LAST_INSERT_ID() 标签内的sql语句相对于insert语句的执行顺序,AFTER表示select LAST_INSERT_ID() 这个语句将在insert语句之后执行。... select UUID()
1.useGeneratedKeys 设置主键自增 2.使用selectKey 查询主键 我们知道很多时候我们有一个需求,我们需要把插入数据后的id返回来,以便我们下一次操作。...="int" keyProperty="id" order="AFTER"> select @@identity select LAST_INSERT_ID() 两种方式的结果: 注意要点: 1.最外层的没有返回属性(resultType),但是里面的是有返回值类型的...2.order="AFTER"表示先执行插入,之后才执行selectkey语句的。
resultType="_long" keyProperty="id" order="AFTER"> select @@IDENTITY as id insert...五、 selectKey子元素 详解 作用:在insert元素和update元素中插入查询语句。 ...其属性如下: keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中 resultType ,keyPropety...所指向的属性类全限定类名或类型别名 order属性 ,取值范围BEFORE|AFTER,指定是在insert语句前还是后执行selectKey操作 statementType ,取值范围STATEMENT...,PREPARED(默认值),CALLABLE 注意:selectKey操作会将操作查询结果赋值到insert元素的parameterType的入参实例下对应的属性中。
例子 ...select count(*) from country where id = #{id} 0"> update country...{countryname},#{countrycode}) csdn上的代码,唯一必须注意的是 keyProperty="count" ,要在实体类dto里面有 select count(*) from country where id = #{id} </selectKey
resultType="java.lang.Long" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() </selectKey...传入的参数必须为对象,不能为String int 之类的单个参数 order属性,取值范围BEFORE|AFTER,指定是在insert语句前还是后执行selectKey操作。...keyProperty属性,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中,也就是你实体类中,对应数据库的主键id。...} 1.2、使用UUID自增主键 select uuid() INSERT
keyProperty (仅适用于 insert 和 update)指定能够唯一识别对象的属性,MyBatis 会使用 getGeneratedKeys 的返回值或 insert 语句的 selectKey...子标签,selectKey标签内的语句可以设置运行顺序,是先执行还是后执行;设置为先执行则可以先查出最大的id,进行+1操作,然后在赋值给新插入的id。...selectKey标签有以下属性 属性 描述 keyProperty selectKey 语句结果应该被设置到的目标属性。如果生成列不止一个,可以用逗号分隔多个属性名称。...如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 中的语句 - 这和 Oracle 数据库的行为相似,在插入语句内部可能有嵌入索引调用。...id主键值 <selectKey order="BEFORE" resultType="integer
5.实体类中id属性字段一定需要set以及get方法 [20201205213916.png] 使用selectKey 查询主键 select @@identity select LAST_INSERT_ID() 两种方式的结果: 注意要点: 1.最外层的没有返回属性(resultType),但是里面的是有返回值类型的...2.order="AFTER"表示先执行插入,之后才执行selectkey语句的。
bean 中对应的id属性名,我这里用的是userId // resultType="java.lang.String" 是你java bean 中对应的id属性类型,我这里用的是String类型 SELECT LAST_INSERT_ID(); insert into user(loginName,loginPwd) values(#{loginName},#{loginPwd}); SELECT LAST_INSERT_ID(); </selectKey
void add(@Param("user")User user); 方法一: SELECT LAST_INSERT_ID() SELECT LAST_INSERT_ID...() 方法二: <insert id="add" parameterType="com.java4all.User" useGeneratedKeys="true" keyProperty
由于要使用数据库返回的主键值 , 所以SQL上下两部分的列中去掉了 id 列和对于的 #{id} 属性 返回非自增主键 采用标签获取主键的值 , 这种方式对提供和不提供主键自增功能的数据库同样适用...password,email,info,create_time) values(#{userName},#{password},#{email},#{info},#{createTime}) SELECT LAST_INSERT_ID() selectKey标签的 keyProperty和上面useGeneratedKeys的用法和含义一样 , 这里的resultType用于设置返回值类型. order 属性和数据库相关
领取专属 10元无门槛券
手把手带您无忧上云