• 如何获取主键返回值(MySQL、Oracle)


    添加用户、返回主键

    --场景:在执行新增用户sql后,service层返回新增用户的主键值(与mybatis一起使用)

              insert into user(username, sex, birthday) values(#{username}, #{sex}, #{birthday})

    1.  数据库MySQL  主键自增

         执行insert提交之后自动生成一个自增主键。

         通过mysql的函数获取到刚刚插入记录的自增主键。LAST_INSERT_ID();

    1 <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
    2              Select LAST_INSERT_ID();
    3 </selectKey>
    4 insert into user(name, age, sex, birthday) 
    5                values(#{name}, #{age}, #{sex}, #{birthday})
    View Code

    2.  数据库MySQL  主键非自增

         通过mysql的UUID()查询到主键,需要修改表中的id字段类型为String,长度设置为35位。

         执行思路:  先通过uuid()查询到主键,将主键输入到sql语句中。
                        执行uuid()语句顺序,是相对于insert语句之前执行。

    1 <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">
    2            Select UUID();
    3 </selectKey>
    4 insert into user(id, name, age, sex, birthday) 
    5                 values(#{id}, #{name}, #{age}, #{sex}, #{birthday})
    View Code

    3.  数据库Oracle  主键序列

        执行思路: 先通过 序列名.nextval 得到主键,将主键输入到sql语句中。
                     执行 序列名.nextval 语句顺序,是相对于insert语句之前执行。

    1 <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">
    2            Select 序列名.nextval;
    3 </selectKey>
    4 insert into user(id, name, age, sex, birthday) 
    5                values(#{id}, #{name}, #{age}, #{sex}, #{birthday})  
    View Code

        

        

      

  • 相关阅读:
    Java面试集合(一)
    Java面试集合(一)
    Android-如何显示版本号并制作3秒跳转页
    Android-如何显示版本号并制作3秒跳转页
    安卓入门教程(十五)- Fragment,Service,WAMP下载
    安卓入门教程(十五)- Fragment,Service,WAMP下载
    网络开发Socket和ServerSocket
    网络开发Socket和ServerSocket
    深入浅出的Java网络通信
    深入浅出的Java网络通信
  • 原文地址:https://www.cnblogs.com/qianbing/p/6972508.html
Copyright © 2020-2023  润新知