博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于SELECT LAST_INSERT_ID()的使用规则
阅读量:6516 次
发布时间:2019-06-24

本文共 1442 字,大约阅读时间需要 4 分钟。

尊重个人劳动成果,转载请注明出处: 

首先我先解释以下在在映射文件中的代码是什么意思。

 
INSERT stu(name)VALUES (#{name})
SELECT LAST_INSERT_ID()
View Code

 

  • 总体解释:将插入数据的主键返回到 user 对象中。
  • 具体解释: 
    • SELECT LAST_INSERT_ID():得到刚 insert 进去记录的主键值,只适用与自增主键
    • keyProperty:将查询到主键值设置到 parameterType 指定的对象的那个属性
    • order:SELECT LAST_INSERT_ID() 执行顺序,相对于 insert 语句来说它的执行顺序
    • resultType:指定 SELECTLAST_INSERT_ID() 的结果类型

明白是什么意思后,那么我们要如何才能得到插入数据的主键呢?请看下面代码就知道了

关键代码:

@Testpublic void main() throws Exception {    StudentDao studentDao = new StudentDao();    // 增加    Student student = new Student();    student.setName("b");    studentDao.testInsertStudent(student);} public void testInsertStudent(Student student) throws Exception {    SqlSession sqlSession = getSession().openSession();    sqlSession.insert(nameSpace + ".insertStudent", student);    sqlSession.commit();    sqlSession.close();    // 得到插入数据的主键并将其打印出来    System.out.println("index: "+student.getId());}
View Code

 

 

打印结果:

这里写图片描述

其中 index:21 就是我们想要的 id 值了

看到这里不知道有没有读者觉得这不是废话吗?student.getId() 后肯定是得到新插入数据的 id 呀。ok,那么我们来验证一下,把上面映射文件中的这段代码删掉。

SELECT LAST_INSERT_ID()

 

打印结果:

这里写图片描述

从图中我们可以发现程序没有执行 SELECT LAST_INSERT_ID()语句了,并且 index 的值变成了 null,也就是得不到新插入数据的 id 了

到此为止,相信你应该知道怎么使用 SELECT LAST_INSERT_ID() 了吧。

注意点:假如你使用一条INSERT语句插入多个行, LAST_INSERT_ID() 只会返回插入的第一行数据时产生的值。比如我插入了 3 条数据,它们的 id 分别是 21,22,23.那么最后我还是只会得到 21 这个值。

 

 

注意:这个函数是MySql数据库的函数

转载于:https://www.cnblogs.com/zdb292034/p/8675019.html

你可能感兴趣的文章
DIY:自己动手做一个迷你 Linux 系统(二)
查看>>
猫猫学IOS(三十)UI之Quartz2D画图片画文字
查看>>
09值类型、引用类型、字符串
查看>>
ethereumjs/merkle-patricia-tree-2-API
查看>>
go标准库的学习-runtime
查看>>
pytorch Debug —交互式调试工具Pdb (ipdb是增强版的pdb)-1-使用说明
查看>>
NodeJS学习之文件操作
查看>>
AJAX的get和post请求原生编写方法
查看>>
WebSocket 是什么原理?为什么可以实现持久连接
查看>>
Python自学笔记-logging模块详解
查看>>
Head First--设计模式
查看>>
iOS之CAGradientLayer属性简介和使用
查看>>
微信小程序UI组件、开发框架、实用库
查看>>
模块化Javascript代码的两种方式
查看>>
Money去哪了- 每日站立会议
查看>>
Python数据结构和算法学习笔记1
查看>>
正则之从dom字符串中提取url
查看>>
大数据——基础概念
查看>>
机器学习温和指南
查看>>
解决Geoserver请求跨域的几种思路,第二种思路用过
查看>>