zoukankan      html  css  js  c++  java
  • select last_insert_id()使用注意

    总体解释:将插入数据的主键返回到 user 对象中。
    具体解释:
    SELECT LAST_INSERT_ID():得到刚 insert 进去记录的主键值,只适用与自增主键
    keyProperty:将查询到主键值设置到 parameterType 指定的对象的那个属性
    order:SELECT LAST_INSERT_ID() 执行顺序,相对于 insert 语句来说它的执行顺序
    resultType:指定 SELECTLAST_INSERT_ID() 的结果类型

     在逆向mabatis中的使用如下:
      在自动生成的mapper.xml中添加selectKey标签里的内容,增加返回的值就是当前记录的主键
    复制代码
    <insert id="insert" parameterType="com.pingyougou.pojo.TbSpecification" >
        <selectKey resultType="java.lang.Long" order="ALTER" keyProperty="id">
            select last_insert_id() as id    
        </selectKey>
        insert into tb_specification (id, spec_name)
        values (#{id,jdbcType=BIGINT}, #{specName,jdbcType=VARCHAR})
    </insert>
    复制代码

     顺便看看selectkey中各个属性的定义:

    resultType:结果的类型。MyBatis 通常可以算出来,但是写上也没有问题。MyBatis 允许任何简单类型用作主键的类型,包括字符串。

    order:这可以被设置为 BEFORE 或 AFTER。如果设置为 BEFORE,那么它会首先选择主键,设置 keyProperty 然后执行插入语句。如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素-这和如 Oracle 数据库相似,可以在插入语句中嵌入序列调用。SelectKey需要注意order属性,像Mysql一类支持自动增长类型的数据库中,order需要设置为after才会取到正确的值。像Oracle这样取序列的情况,需要设置为before,否则会报错。

    keyProperty:selectKey 语句结果应该被设置的目标属性。

    from 蜡笔没了芯
  • 相关阅读:
    上下文相关协议的学习
    正则模块学习
    Delphi 10.2.3 + Xcode 9.2 开发 IOS 程序,免证书+免越狱,真机调试
    Delphi X10.2 + FireDAC 使用 SQL 语句 UPDATE
    Delphi X10.2 + FireDAC 使用 SQL 语句 INSERT
    Png 图像缩放保持 Alpha 通道
    delphi 10.1 Berlin 中使用自带的 Base64 编码
    delphi 10.1 Berlin 中使用自带的 MD5 校验
    完成 bass 库的频谱显示效果图
    Ubuntu 12.04 LTS 安裝无线网卡驱动
  • 原文地址:https://www.cnblogs.com/labimeilexin/p/15098253.html
Copyright © 2011-2022 走看看