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
  • 相关阅读:
    XMPP资源绑定(Resource Binding)与单台设备登录控制
    解决Eclipse建立Maven项目后无src/main/java资源文件夹的办法
    quartz做集群配置较短的时间间隔会重复执行任务的问题
    同一服务器部署多个tomcat时的端口号修改详情
    Java RSA加密算法生成公钥和私钥
    CSS3动画(重要)
    CSS3 过渡
    CSS3 3D 转换
    CSS3 2D 转换
    CSS3 文本效果(阴影)
  • 原文地址:https://www.cnblogs.com/personsiglewine/p/14978404.html
Copyright © 2011-2022 走看看