zoukankan      html  css  js  c++  java
  • 如何获取主键返回值(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

        

        

      

  • 相关阅读:
    echarts数据包坐标拾取工具
    JS 多个条件判断
    js 实现各浏览器全屏
    前端统计使用插件
    JS 随机排序算法
    js中布尔值为false的六种情况
    Mosaic
    单点登录
    JavaScript数据结构和算法
    一个普通函数的冷僻属性(length、caller、arguments、name、[[Scopes]]和[[FunctionLocation]])
  • 原文地址:https://www.cnblogs.com/qianbing/p/6972508.html
Copyright © 2011-2022 走看看