<selectKey>标签的作用
作用:
一些情况下,新增一条数据信息,但其主键(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>标签的作用相关推荐
- Mybatis中selectKey 标签的作用,主键回填,找了好多文章没一个解释清楚。。
(1)没有配置selectKey 标签时候插入数据: <insert id="addUser" parameterType="model.User"> ...
- MyBatis—insert语句返回主键和selectKey标签
本文已同步至个人博客liaosi's blog - MyBatis-insert语句返回主键和selectKey标签 往数据库中插入一条记录后,有时候我们需要这条记录的主键,用于后续的操作.如果在插入 ...
- php中pre标签,html中pre标签与code标签的作用与用法
HTML 标签 定义和用法 pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. 标签的一个常见应用就是用来表示计算机的源代码. 可以导致 ...
- jsp 使用base标签 没有作用_JSP学习篇
什么是jsp? JSP全名Java Server Pages,中文名叫Java服务器页面,其根本是一个简化的Servlet设计,是由Sun公司倡导,多家公司参与建立的一种动态网页技术标准. 访问原理流 ...
- python label标签的作用_label标签的作用是什么?
label标签的作用是为鼠标用户改进了可用性,当用户点击[]标签中的文本时,浏览器就会自动将焦点转到和该标签相关联的控件上. label标签的作用: 一.标签定义及用法 在html中,标签通常和标签一 ...
- 在html中base的作用,html中base标签的作用是什么
html中base标签的作用是什么? 作用:为页面上的所有链接规定默认地址或默认目标,是一种表达路径和连接网址的标签. 说明:通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 UR ...
- meta标签详解(meta标签的作用)///////////////////////////转
meta标签详解(meta标签的作用) 很多人却忽视了HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性,有兴趣吗,谁我来重新认识一下META标签吧 您的 ...
- nofollow标签的作用有重大变化
几个小时前,Google官方博客发了个帖子:Evolving "nofollow" – new ways to identify the nature of links (演变中的 ...
- nofollow标签的作用 nofollow标签添加方法
这篇文章主要介绍了nofollow标签的作用 nofollow标签添加方法,需要的朋友可以参考下 nofollow标签的作用 nofollow标签添加方法 模拟搜狗蜘蛛 nofollow标签是s ...
最新文章
- 类加载器双亲委派模式
- 多人聊天室(Java)
- Nucleus PLUS任务调度
- 北大信科学院实验室_从实验室科学家到开放科学软件开发人员
- volume image
- px2rem 第三方库实践
- C++访问WebService(gSoap方式和com组件方式)
- c++类成员变量初始化详解
- netty 高匿ip检测_检测代理IP匿名程度的方法
- php计算时间差js,js 求时间差怎么求实例代码
- 一张图看懂财务报表分析
- 鱼眼相机外参的计算和图像的透视变换
- 一个最简单的自定义锁屏应用实现
- python多线程爬取m3u8视频(包含AES解密)
- supervisor安装使用
- 2021年杭州值得去的46家规模互联网大厂公司全名简称
- 差分GPS接收机定位原理
- “measure”(测量)、“measurement”(测度)和“metrics”(度量)
- google.api.http
- 计算机证据和网络证据的关系,计算机犯罪证据有哪些特点