mybatis的Mapper中在mysql和oracl中新增一条记录,返回记录id

情景再现:项目中经常在mybatis的Mapper中在mysql和oracl中新增一条记录后,需要返回记录id:

1.使用mysql数据库:

//java的User对象,包含id,name,password三个属性

<insert id="insert" useGeneratedKeys="true" keyProperty="id"  >

   INSERT INTO user(//id 在这里可以省略
      name,
      password
   ) VALUES (
      #{name},
      #{password}
   )
</insert>

ps:mysql数据库,表主键id一般设置为自增,从1开始;useGeneratedKeys只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回;keyProperty是Java对象的属性名。

2.使用oracl数据库:

<insert id="insert">

<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">

  select USER_ID_SEQ.nextval as id  from dual          

</selectKey>

INSERT INTO user(
      id,
      name,
      password
   ) VALUES (
      #{id},
      #{name},
      #{password}
   )
</insert>

ps:oracl数据库,表主键一般是用序列进行自增,也是从1开始, order可设置为BEFORE 或 AFTER,当设置为 BEFORE时,它会首先选择主键,设置 keyProperty 然后执行插入语句。当设置为 AFTER,那么先执行插入语句 ;USER_ID_SEQ.nextval 为oracl序列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值