记录一次傻逼的问题, 自己把自己蠢哭:Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1

错误说明:

  返回的1是影响的行数,并不是自增的主键id;

  想要获取自增主键id,需要通过xx.getId()方法获取,因为在mybatis中指定自增主键id封装到了对象的属性中,所以我们需要在对象中来获取

代码示例如下:

<insert id="add"useGeneratedKeys="true" keyColumn="id" keyProperty="id"parameterType="user">INSERT INTO `user` (`name`,sex,register_ts) VALUES (#{name},#{sex},#{registerTs})<selectKey resultType="int" keyProperty="id" order="AFTER">SELECT LAST_INSERT_ID()</selectKey>
</insert>

总结:

1. 想要获取自增主键id,应该通过对象的getId()方法,而并不是insert的返回值,insert的返回值表示的是影响行数

2.在mapper.xml中:useGeneratedKeys="true"、keyProperty="id",这两个属性的作用:

  共同决定了sql执行后,会将主键封装到id属性上;

  自增主键封装到了对象的id属性上了,那么想要获取,直接调用对象的getId()方法就可以了

转载于:https://www.cnblogs.com/quan-coder/p/8728410.html

Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1相关推荐

  1. 做工作流时候 Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1

    Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1 错误说明: 返回的1是影响的行数,并不是自增的主键id: 想要获取自增主键id,需要通过xx.getId()方法获取,因为 ...

  2. 【MyBatis笔记】6 - 特殊SQL的执行:不能使用#{}的场景、获取自增的主键

    文章目录 1.模糊查询 2.批量删除 3.动态设置表名 4.添加功能获取自增的主键 视频链接:https://www.bilibili.com/video/BV1VP4y1c7j7?p=37& ...

  3. mysql 获取 row的id_转: MYSQL获取更新行的主键ID

    在某些情况下我们需要向数据表中更新一条记录的状态,然后再把它取出来,但这时如果你在更新前并没有一个确认惟一记录的主键就没有办法知道哪条记录被更新了. 举例说明下: 有一个发放新手卡的程序,设计数据库时 ...

  4. oracle主键id自动自增_Oracle主键ID设置自动增长(序列+触发器)

    ----创建表 create  table  users ( user_id number(6) not null, user_name varchar2(20) not null, user_pwd ...

  5. thinkadmin开源框架获取添加信息的主键id

    注:该文章只是给有thinkadmin开发经验的人看的,如果你没有用过,可能会看不懂 执行一个添加方法 /*** 添加学生* @auth true* @throws \think\Exception* ...

  6. mybatis多表新增如何获取主键ID

    记录一下碰到的问题,就当做是笔记吧,防止忘记.在做ssm多表新增的时候,碰到了一个小问题,就是在新增成功一个表的时候我要获取它的ID,然后用它的ID新增下一个表. 但是,我要怎么做呢?新增成功,再查询 ...

  7. mybatis插入数据后返回自增主键ID详解

    1.场景介绍: ​ 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后 ...

  8. MyBatis——insert并返回主键ID解决方案

    问题描述 添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前端调用中需要插入多个表的场景. 除了添加单条记录时获取主键值,有时候可能需要获取批量添加记录时各记录的主键值. 问题分析 暂无. ...

  9. Mybatis 插入数据后返回自增主键ID

    1 xml 映射文件中处理 在映射器中配置获取记录主键值 在xml中 insert 标签中定义 : useGeneratedKeys为true,用来设置返回主键id的值, keyProperty 代表 ...

最新文章

  1. ES 處於“initializing”狀態,此時主節點正在嘗試將分片分配到集群中的數據節點。 如果您看到分片仍處於初始化或未分配狀態太長時間,則可能是您的集群不穩定的警告信號。...
  2. fmt打印不显示 go_程序猿学Go: 日志系统
  3. power shell远程_PowerShell入门教程之远程操作运行PowerShell的方法
  4. 武汉大学提出软模板SoftProto框架,大幅增强方面词抽取任务
  5. Python OS和shutil模块的常见方法
  6. 一个 SQL 同时验证帐号是否存在、密码是否正确
  7. 哔哩哔哩2019年Q4及全年财报:全年营收67.8亿元,同比增长64%
  8. java 字符 次数_java-统计字符串中各字符次数
  9. se linux ll-z,Linux selinux 基础
  10. sap 双计量单位_[原创]浅谈MM模块的双计量单位(二)
  11. 修改他人代码:怎么才能减少发布Bug概率?
  12. C++ - 派生类访问模板基类(templatized base class)命名
  13. 《勒索软件经济分析》:“理想赎金”950英镑
  14. C语言 :探究Char 到底是啥
  15. 论文整理:Probabilistic Logic Neural Networks for Reasoning
  16. 百度地图开发:H5获取GPS-wg84经纬度与百度定位API的偏差测试
  17. 1万字精讲,这你还学不废?Python爬取腾讯视频《斛珠夫人》弹幕,并转换成词云(单线程)——爬虫实例2
  18. 土地估价师继续教育培训心得体会
  19. 基于墨刀实现的原型系统:一款简易的读书软件
  20. vi编辑器的四种退出方式

热门文章

  1. java的传值调用什么_Java的传值调用
  2. oracle怎么读取表空间文件大小,oracle获取表空间文件大小
  3. C语言 | 一维数组
  4. 你知道自己适合做程序员吗?
  5. python大型项目经验_图像分类:13个Kaggle项目的经验总结
  6. 安装win7系统不能开机启动服务器,win7系统开机启动项不能加载的原因分析及解决...
  7. 金融模型python_盘点金融领域里常用的深度学习模型
  8. android 编辑9图片,Android基础入门教程——1.6 .9(九妹)图片怎么玩
  9. datax导入MySQL报错_导入MySQL方法对比
  10. 光纤收发器的选购原则介绍