作用:

一些情况下,新增一条数据信息,但其主键(id)是数据库自动在数据库生成(自增),而有些业务逻辑的处理是需要要到这个生成的主键(id)。
标签就是用来获取这个生成的主键(id)

例:

<insert id="add" parameterType="com.demo.pojo.User"><!--通过mybatis框架提供的selectKey标签获得自增产生的ID值--><selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">select LAST_INSERT_ID()</selectKey>insert into user(code,name,remark,sex)values(#{code},#{name},#{remark},#{sex})</insert>

简单来说,selectKey 会将 SELECT LAST_INSERT_ID()的结果放入到传入的model的主键里面,即获取数据库里自动生成的id

  • keyProperty:对应的model中的主键的属性名,跟数据库的主键对应
  • order:AFTER 表示 SELECT LAST_INSERT_ID() 在insert执行之后执行,多用与自增主键
    BEFORE 表示 SELECT LAST_INSERT_ID() 在insert执行之前执行,这样的话就拿不到主键了,适合那种主键不是自增的类型
  • resultType:主键类型

自增主键测试

<insert id="add" parameterType="com.demo.pojo.User"><!--通过mybatis框架提供的selectKey标签获得自增产生的ID值--><selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">select LAST_INSERT_ID()</selectKey>insert into user(code,name,remark,sex)values(#{code},#{name},#{remark},#{sex})</insert>

UserServiceImpl:

 @Overridepublic void add(User user) {//新增UserDao.add(user);Integer userId = user.getId();System.out.println("添加信息的id为:" + userId);}

日志信息:

数据库信息:

非自增主键

区别:

  • insert语句需要写id字段
  • order属性需要写成BEFORE
<insert id="add" parameterType="com.demo.pojo.User"><!--通过mybatis框架提供的selectKey标签获得自增产生的ID值--><selectKey resultType="string" order="BEFORE" keyProperty="id">select uuid()  </selectKey>insert into user(id,code,name,remark,sex)values(#{id},#{code},#{name},#{remark},#{sex})</insert>

<selectKey>标签的作用相关推荐

  1. Mybatis中selectKey 标签的作用,主键回填,找了好多文章没一个解释清楚。。

    (1)没有配置selectKey 标签时候插入数据: <insert id="addUser" parameterType="model.User"> ...

  2. MyBatis—insert语句返回主键和selectKey标签

    本文已同步至个人博客liaosi's blog - MyBatis-insert语句返回主键和selectKey标签 往数据库中插入一条记录后,有时候我们需要这条记录的主键,用于后续的操作.如果在插入 ...

  3. php中pre标签,html中pre标签与code标签的作用与用法

    HTML 标签 定义和用法 pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. 标签的一个常见应用就是用来表示计算机的源代码. 可以导致 ...

  4. jsp 使用base标签 没有作用_JSP学习篇

    什么是jsp? JSP全名Java Server Pages,中文名叫Java服务器页面,其根本是一个简化的Servlet设计,是由Sun公司倡导,多家公司参与建立的一种动态网页技术标准. 访问原理流 ...

  5. python label标签的作用_label标签的作用是什么?

    label标签的作用是为鼠标用户改进了可用性,当用户点击[]标签中的文本时,浏览器就会自动将焦点转到和该标签相关联的控件上. label标签的作用: 一.标签定义及用法 在html中,标签通常和标签一 ...

  6. 在html中base的作用,html中base标签的作用是什么

    html中base标签的作用是什么? 作用:为页面上的所有链接规定默认地址或默认目标,是一种表达路径和连接网址的标签. 说明:通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 UR ...

  7. meta标签详解(meta标签的作用)///////////////////////////转

    meta标签详解(meta标签的作用) 很多人却忽视了HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性,有兴趣吗,谁我来重新认识一下META标签吧 您的 ...

  8. nofollow标签的作用有重大变化

    几个小时前,Google官方博客发了个帖子:Evolving "nofollow" – new ways to identify the nature of links (演变中的 ...

  9. nofollow标签的作用 nofollow标签添加方法

    这篇文章主要介绍了nofollow标签的作用 nofollow标签添加方法,需要的朋友可以参考下 nofollow标签的作用 nofollow标签添加方法  模拟搜狗蜘蛛   nofollow标签是s ...

最新文章

  1. 类加载器双亲委派模式
  2. 多人聊天室(Java)
  3. Nucleus PLUS任务调度
  4. 北大信科学院实验室_从实验室科学家到开放科学软件开发人员
  5. volume image
  6. px2rem 第三方库实践
  7. C++访问WebService(gSoap方式和com组件方式)
  8. c++类成员变量初始化详解
  9. netty 高匿ip检测_检测代理IP匿名程度的方法
  10. php计算时间差js,js 求时间差怎么求实例代码
  11. 一张图看懂财务报表分析
  12. 鱼眼相机外参的计算和图像的透视变换
  13. 一个最简单的自定义锁屏应用实现
  14. python多线程爬取m3u8视频(包含AES解密)
  15. supervisor安装使用
  16. 2021年杭州值得去的46家规模互联网大厂公司全名简称
  17. 差分GPS接收机定位原理
  18. “measure”(测量)、“measurement”(测度)和“metrics”(度量)
  19. google.api.http
  20. 计算机证据和网络证据的关系,计算机犯罪证据有哪些特点

热门文章

  1. 巴基斯坦签证办理攻略及流程 材料分析 巴基斯坦签证如何办理
  2. 为什么KEYNOTE导出HTML很大,给keynote文件瘦身
  3. 我的专业我做主计算机演讲稿,我的未来我做主演讲稿作文
  4. 在命令行窗口中如何从C盘切换到D盘的指定目录
  5. Windows设置本地DNS域名解析hosts文件配置
  6. 卢俊卿欢迎荷兰前首相科克夫妇访问天九集团
  7. C/C++教师评分系统
  8. 用Wordcloud生成指定形状的词云图
  9. 聚焦「就近」与「轻计算」,阿里云边缘云连续3年领跑!
  10. 定义函数,输入三角形的三条边,求三角形面积