zoukankan      html  css  js  c++  java
  • Mybatis插入数据返回主键

    Mybatis插入数据返回主键

    useGeneratedKeys: (仅适用于 insert 和 update)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系型数据库管理系统的自动递增字段),默认值:false。
    keyProperty: (仅适用于 insert 和 update)指定能够唯一识别对象的属性,MyBatis 会使用 getGeneratedKeys 的返回值或 insert 语句的 selectKey 子元素设置它的值,默认值:未设置(unset)。如果生成列不止一个,可以用逗号分隔多个属性名称。
    keyColumn:(仅对insert和update有用)此属性用于设置第几列是主键,当主键不是表中的第一列时需要设置。在需要联合主键时,值可以用逗号隔开。

    通俗来说:
    useGeneratedKeys=true能够返回主键ID
    keyProperty="对象id":我们插入的时候传入一个object,object对象有一个id属性并未赋值,当我们设置了这两项之后,mybatis会将表中的id返回并注入object的id属性中。

    常见误区:不能直接使用mapper方法的返回值来获取值,会获取到错误值,因为方法的返回值只会返回你所操作的数据表的记录数----------要使用传入对象的getId属性来获取。

    代码展示:

    //mapper映射文件
      <insert id="add" parameterType="com.itheima.pojo.CheckGroup" useGeneratedKeys="true" keyProperty="id">
            insert into t_checkgroup(code,name,helpCode,sex,remark,attention)
            values (#{code},#{name},#{helpCode},#{sex},#{remark},#{attention})
        </insert>
    //service层方法
     checkGroupDao.add(checkGroup);//执行添加操作
     checkGroup.getId()//获取主键id
    
     
    转 https://www.jianshu.com/p/afa7ae812fc8
  • 相关阅读:
    快速入门系列--MVC--05行为
    2015链家网面试记录
    快速入门系列--MVC--04模型
    django 添加动态表格的方法
    git clone
    postgresql数据库实用操作
    django 实战
    Android手机分辨率基础知识(DPI,DIP计算)
    Android中xml设置Animation动画效果详解
    Unable to execute dex: Multiple dex files define Lcom/gl
  • 原文地址:https://www.cnblogs.com/personsiglewine/p/14978404.html
Copyright © 2011-2022 走看看