java面试题网

普通会员

115

帖子

83

回复

167

积分

楼主
发表于 2019-09-27 11:48:30 | 查看: 5043| 回复: 0

MyBatis在insert插入操作时返回主键ID

MyBatis在insert插入操作时返回主键ID
数据库为MySql时:
1. <insert id="insert" parameterType="com.test.User" keyProperty="userId" useGeneratedKeys="true" >
“keyProperty”表示返回的id要保存到对象的那个属性中,“useGeneratedKeys”表示主键id为自增长模式。
MySQL中做以上配置就OK了
数据库为Oracle时:
<insert id="insert" parameterType="com.test.User">
<selectKey resultType="INTEGER" order="BEFORE" keyProperty="userId"> SELECT SEQ_USER.NEXTVAL as userId from DUAL </selectKey>
insert into user (user_id, user_name, modified, state) values (#{userId,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{modified,jdbcType=TIMESTAMP}, #{state,jdbcType=INTEGER})
</insert>
由于 Oracle 没有自增长一说法,只有序列这种模仿自增的形式,所以不能再使用“useGeneratedKeys”属性。
而是使用<selectKey>将ID获取并赋值到对象的属性中,insert插入操作时正常插入id。


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/1360_1_1.html


java面试题交流群:327440556

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018