最近做项目,要求不能使用mybatis等框架,所以一切数据库访问操作都是用原生的JDBC。

用过mybatis的都知道,插入新数据后可以直接返回主键的值,但是使用JDBC不行,于是上网搜了一下,找到一个还蛮好用的方法:

SELECT LAST_INSERT_ID();

这个mysql内置函数可以返回当前连接最后一条插入的数据的主键,值得注意的是,如果你一次插入了多条记录,这个函数返回的是第一个记录的ID值。

但是在实际操作过程中,我遇到了一个坑:

我是把对数据库的操作都封装成了一个方法,每次执行方法前从连接池获取数据库连接,执行完马上就把连接还给数据库连接池,结果就是我调用了一个INSERT方法,这个方法执行完后数据库连接就返还给连接池了,然后我又执行了

SELECT LAST_INSERT_ID();

此时看起来操作很连贯,没有问题,但实际上,执行SELECT LAST_INSERT_ID();的数据库连接跟执行INSERT的数据库连接并不是同一个,所以我调试了半天都是返回0。

划重点

使用SELECT LAST_INSERT_ID();时,切记,要跟使用INSERT语句的数据库连接是同一个才可以!!!!

参考文章

MYSQL插入数据后返回主键相关推荐

  1. mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  2. 七种MYSQL插入数据后返回自增主键ID的方法

    我们都知道,mysql中的insert插入之后会有返回值,返回的是影响的行数,也就是说,成功插入一条数据之后返回的是1,失败则返回0.那么,很多时候我们都想要得到最后插入的id值,下面七种方法均可,结 ...

  3. mybatis 插入数据时返回主键

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:显然,假如主键是你生成后插入的,自然你已经有主键了,显然不需要我们再去获得,所以我们这里处理的是当主键 ...

  4. mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  5. oracle批量插入并且返回自增主键_mybatis + (oracle)实现主键自增 + 插入数据并返回主键...

    一.实现主键自增 在oracle数据库中,主键并没有办法自动增长,无法使用insert对应的useGeneratedKeys和keyProperty属性自动返回增加的主键. 要实现自增需要修改 ID列 ...

  6. Mybatis插入数据后获取主键的值

    Mybatis插入数据后获取主键的值 1. 所使用的数据库是支持自增的,且主键是自增的 <!-- 支持自增的数据库且主键是自增的:自动将插入后自增id的值赋值给传入的Employee的id--& ...

  7. mysql插入数据后返回自增id

    mysql插入数据后返回自增id 使用<insert 中的useGeneratedKeys 和 keyProperty 两个属性 在Mybatis Mapper文件中添加属性 useGenera ...

  8. MyBatis在Oracle中插入数据并返回主键的问题解决

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 前言:我早期用过这个方法,但是返回的依旧是影响行数,不是主键. 只是这种写法可以达到我要的效果: 用 ...

  9. mysql 插入数据后返回当前的自增ID方法

    存储过程的写法: mysql>create procedure test( ->in username varchar(50), ->in password varchar(50), ...

最新文章

  1. django之Ajax
  2. java批量生成订单号_【笔记6-支付及订单模块】从0开始 独立完成企业级Java电商网站开发(服务端)...
  3. Boost:自动索引允许的选项
  4. C++ 面向对象(四)—— 多态 (Polymorphism)
  5. php怎么使得字体滚动,滚动文字+字体特效代码(全集)
  6. solr之搭建企业搜索平台,配置文件详细solrconfig.xml
  7. System学习笔记007---win10连接阿里云出现_远程连接提示要求的函数不受支持如何解决
  8. git配置密钥后无法pull
  9. hive sql 13位毫秒时间戳转日期
  10. Mac上的MySQL可视化工具总结
  11. OPNsense用户手册-别名
  12. mysql dump hbase_mysqldump 导出部分数据库
  13. 2019 8 9 STM32F407ADS1526连续转换模式相关配置(采样率达到15000SPS)
  14. 共阴极数码管,学号显示实验
  15. 做眼镜识别的人脸检测
  16. テクニカルアーティストに必要な資料集めようぜ!
  17. JS实现记住用户密码
  18. Python文本分析案例:近体诗格律分析
  19. Android自定义睡眠下表统计图,Android 进阶自定义View(5)图表统计PieChartView圆饼图的实现...
  20. faiss 相似特征向量搜索

热门文章

  1. 家园垃圾分类php源码,PHP垃圾分类设备机器类企业网站整站源码(带手机移动端) dedecms内核...
  2. latex如何自定义图片的标题位置
  3. 佳易王试用版会员大众版管理系统#养生馆会员软件使用学习分享
  4. 2022年高教社杯建模国赛论文写作指导
  5. 有一天人类开启流浪地球之旅,萌宠们该如何选择自己的宠物出行套装呢?
  6. saltstack(4)动态pillar
  7. 干货 | 史上最全中文分词工具整理
  8. 怎么关闭计算机硬件加速,如何关闭硬件加速
  9. pytorch与ROCM
  10. Java学习笔记6.3.4 文件操作 - Path接口和Files工具类