MySQL、PostgreSQL 得到当前插入的数据的id

MySQL
<insert id="insert" parameterType="com.jbit.entity.Student">
	insert into student(id,name)
	values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR})
	<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
		SELECT LAST_INSERT_ID()
	</selectKey>
</insert>

  作用:插入一条数据,并将插入的此条数据的主键id返回到 Student 对象中。(仅适用于主键自增)

  • SELECT LAST_INSERT_ID():得到刚 insert 进去记录的主键值
  • keyProperty:将查询到主键值设置到 parameterType 指定的对象的那个属性
  • order:SELECT LAST_INSERT_ID() 执行顺序,相对于 insert 语句来说它的执行顺序
  • resultType:指定 SELECTLAST_INSERT_ID() 的结果类型
postgreSQL
<insert id="insert" parameterType="com.jbit.entity.Student">
	insert into student(id,name)
	values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR})
	<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
		SELECT currval('student_id_seq')
	</selectKey>
</insert>

  作用:插入一条数据,并将插入的此条数据的主键id返回到 Student 对象中。(仅适用于主键自增)

  • SELECT currval(‘表名_主键_seq’):得到刚 insert 进去记录的主键值
  • keyProperty:将查询到主键值设置到 parameterType 指定的对象的那个属性
  • order:SELECT currval(‘表名_主键_seq’) 执行顺序,相对于 insert 语句来说它的执行顺序
  • resultType:指定 SELECT currval(‘表名_主键_seq’) 的结果类型
Oracle

待验证

  <insert id="createUser" parameterType="pojo.User">
  	<!-- selectKey 的结果会放进传参 user 对象中-->
	<selectKey keyProperty="id" resultType="java.lang.Long" order="BEFORE">  
    	select SEQ_USER_ID.NEXTVAL from dual  
	</selectKey>
    insert into "USER" (ID, USER_NAME, PASSWORD)
    values (#{id,jdbcType=BIGINT}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}
      )
  </insert>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值