mybatis-plus的selectById(或者selectOne)在根据主键ID查询实体对象的时候偶尔会出现null的问题记录
mybatis-plus的selectById/selectOne查询结果偶尔出错(为null)的问题记录
错误截图:
亲测重复执行此段代码10次中大概会有连续的2次出现结果为null的情况。
由于后续还需引用到这个查询结果的某些字段信息,会导致程序出现空指针异常,故投机取巧做了如下处理(加了一个while循环让其一直执行selectById(或者selectOne)直到查询结果不为空):
但这终归不是从根本上解决了问题。我也不清白他出现这个问题的根本原因是什么。
到此这篇关于mybatis-plus的selectById(或者selectOne)在根据主键ID查询实体对象的时候偶尔会出现null的问题记录的文章就介绍到这了,更多相关mybatis-plus selectById null内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
关于使用Mybatisplus自带的selectById和insert方法时的一些问题
一.关于使用Mybatisplus自带的selectById和insert方法时的一些问题 1.selectById的问题 (1).表的主键列名不是id时 查询不到数据,因为Mybatisplus自动生成的sql语句where后面拼接的是where null = ? 这就表示表的主键列名的名字不是id,而Mybatisplus默认的是使用id为主键名的 (2).解决方法 @Id @TableId("commodity_id") @Column("commodity_id&qu
-
mybatis-plus的selectById(或者selectOne)在根据主键ID查询实体对象的时候偶尔会出现null的问题记录
mybatis-plus的selectById/selectOne查询结果偶尔出错(为null)的问题记录 错误截图: 亲测重复执行此段代码10次中大概会有连续的2次出现结果为null的情况. 由于后续还需引用到这个查询结果的某些字段信息,会导致程序出现空指针异常,故投机取巧做了如下处理(加了一个while循环让其一直执行selectById(或者selectOne)直到查询结果不为空): 但这终归不是从根本上解决了问题.我也不清白他出现这个问题的根本原因是什么. 到此这篇关于mybatis-p
-
Mybatis批量插入返回插入成功后的主键id操作
我们都知道Mybatis在插入单条数据的时候有两种方式返回自增主键: 1.对于支持生成自增主键的数据库:增加 useGenerateKeys和keyProperty ,<insert>标签属性. 2.不支持生成自增主键的数据库:使用<selectKey>. 但是怎么对批量插入数据返回自增主键的解决方式网上看到的还是比较少,至少百度的结果比较少. Mybatis官网资料提供如下: First, if your database supports auto-generated key
-
如何用注解的方式实现Mybatis插入数据时返回自增的主键Id
目录 用注解实现Mybatis插入数据返回自增的主键Id 设计数据库表 设计Java bean对象 添加mapper接口 Mybatis注解增(返回自增id) 删查改以及(一对一,一对多,多对多) 数据库表 目录结构 导入坐标(包) 配置文件 实体类 mapper接口编写 测试 用注解实现Mybatis插入数据返回自增的主键Id 我们在数据库表设计的时候,一般都会在表中设计一个自增的id作为表的主键.这个id也会关联到其它表的外键. 这就要求往表中插入数据时能返回表的自增id,用这个ID去给关联
-
mybatis中insert主键ID获取和多参数传递的示例代码
一.插入数据主键ID获取 一般我们在做业务开发时,经常会遇到插入一条数据并使用到插入数据的ID情况.如果先插入在查询的话需要多一次sql查询,未免效率太低.因此mybatis也有提供插入数据并返回主键ID的方式.如下 1.Insert/update 1.1.属性解释 keyProperty selectKey 语句结果应该被设置的目标属性.如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表. resultType 结果的类型.MyBatis 通常可以推算出来,但是为了更加确定写上也不会有什
-
MyBatis获取数据库自生成的主键Id详解及实例代码
MyBatis获取数据库自生成的主键Id详解及实例代码 在使用MySQL数据库时我们一般使用数据库的自增主键自动产生主键.如果在插入主表时,我们需要同时插入从表的数据,这时我们通常需要知道主表插入时自动产生的主键Id值. 下面介绍使用MyBatis进行插入时,如何同时获取数据库自生成的主键: 1.XML配置文件 <insert id="insert" parameterType="Person" useGeneratedKeys="true"
-
MyBatis在insert插入操作时返回主键ID的配置(推荐)
很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键. 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数... 接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中. MySQL用法: <insert id="insert" parameterType="com.test.User&qu
-
详解mybatis插入数据后返回自增主键ID的问题
1.场景介绍: 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条数,那么这个时候我们想要得到相应的这条新增数据的ID,该怎么办呢? 2.插入数据返回自增主键ID方法(一) 在映射器中配置获取记录主键值xml映射: 在xml中定义useGeneratedKeys为true,返回主键id的值,keyProperty和keyColumn分别代表数据库
-
mybatis新增save结束后自动返回主键id详解
目录 mybatis新增save结束后自动返回主键id 1.使用场景 2.原理在Mybatis配置了 mybatis或者mybatis-plus中save方法返回主键值 1.mapper.xml中 2.service或者dao中 mybatis新增save结束后自动返回主键id 1.使用场景 save操作之前实体类中id为null,save之后自动返回带id的实体类 @Override public ChartPagePanel save(ChartPagePanel entity) { Use
-
Mybatis批量插入并返回主键id的方法
目录 场景 错误 分析原因 排查问题 场景 在做商城的时候,sku表进行了拆分,sku的基本信息以及sku的库存表.因为库存会经常的变动,会导致行锁. 这里就是新增的时候,因为在新增商品的时候,会有多条sku的数据进行批量的插入,那么有批量插入sku基本信息以及批量插入sku的库存信息. 其中,就需要批量插入sku的基本信息的时候,返回主键id,这就能够在sku批量插入库存信息的时候能够插入skuId: 错误 nested exception is org.apache.ibatis.execu
-
Mybatis执行插入语句后并返回主键ID问题
目录 1.MySQL数据库设置ID自增情况 2.使用UUID自增主键 3.mybatis-plus在执行插入语句后返回自定义ID 总结 我们知道JDBC可以实现插入语句后返回主键Id,那mybatis可以实现吗? 答案是肯定的. 1.MySQL数据库设置ID自增情况 <insert id="insertUser" parameterType="com.crush.mybatisplus.entity.User"> INSERT INTO tb_user
随机推荐
- vmware虚拟机怎么克隆 VMware11.0.0虚拟机克隆
- python模拟登录并且保持cookie的方法详解
- 在ASP.NET2.0中通过Gmail发送邮件的代码
- 详解Js中的模块化是如何实现的
- JSP防止网页刷新重复提交数据的几种方法
- JavaScript计划任务后台运行的方法
- js 概率计算(简单版)
- jdk环境变量配置
- PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
- PHP实现根据数组的值进行分组的方法
- Python可变参数函数用法实例
- Android中使用sax解析xml文件的方法
- 关于Java中的IO流总结(推荐)
- 用模版生成HTML的的框架jquery.tmpl使用详解
- jQuery+ajax的资源回收处理机制分析
- jQuery 类twitter的文本字数限制带提示效果插件
- php实现留言板功能
- Android仿微信/支付宝密码输入框
- AngularJS实现的根据数量与单价计算总价功能示例
- 详解WEB攻击之CSRF攻击与防护