zoukankan      html  css  js  c++  java
  • Mybatis框架(6)---Mybatis插入数据后获取自增主键

    Mybatis插入数据后获取自增主键

        首先理解这就话的意思:就是在往数据库表中插入一条数据的同时,返回该条数据在数据库表中的自增主键值。

        有什么用呢,举个例子:

        你编辑一条新闻,同时需要给该新闻打上标签(可以一个或者多个:比如:女性,爱,钱等等),然后存储到数据库中。怎么存,肯定涉及到三张表,新闻表,标签表,新闻标签id关联表

    新闻表插入数据简单,标签表插入数据简单。那新闻标签表呢,如何关联,那是不是需要新闻表和标签表插入数据的时候,返回它们的主键Id然后再存储到新闻标签表中。

       这种场景还是蛮常见的。下面主要针对的MySQL数据库进行操作。

    1.TLivePressOriginDOMapper.xml插入语句添加配置

     <!-- 主要讲新添加的两个属性:useGeneratedKeys和keyProperty-->
      <!--useGeneratedKeys="true" 默认值是:false。 含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。-->
      <!--keyProperty="autoId" 就很好理解了,就是把主键值赋值给TLivePressOriginDO实体的autoId属性中-->
      <insert id="insertSelective" parameterType="com.jincou.dlo.TLivePressOriginDO" useGeneratedKeys="true" keyProperty="autoId">

    2.查看TLivePressOriginDO实体

    有个属性autoId

    3.在看TLivePressOriginDOMapper

    4、在看实际效果

        我们看到这里数据的主键值是10,是通过赋值给bean实体中的autoId属性的。

    那到底数据库存储该条数据的主键是不是10呢?

    5、看数据库该条记录

         数据库中该条数据的自增主键Id果然是10,那就说明达到了插入数据的同时获得了该条数据在数据库表中的主键值的目的。

    注意:以上操作只针对MySQL数据库哦。

     想太多,做太少,中间的落差就是烦恼。想没有烦恼,要么别想,要么多做。中校【10】 

  • 相关阅读:
    laydate 显示结束时间不小于开始时间
    [Draft]iOS.ObjC.Pattern.Builder-Pattern
    [Draft]iOS.Architecture.16.Truth-information-flow-and-clear-responsibilities-immutability
    iOS.ObjC.__attribute__.1-all-_attribute_-directives
    Security.ssl-pinning
    iOS.mach_msg_trap()
    iOS.redefinition-of-struct-x
    Swift.Operator-and-Items-in-Swift(1)
    iOS.Animation.Math-behind-CATransform3D
    Security.website-that-focus-on-mobile-app-security
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/9339139.html
Copyright © 2011-2022 走看看