关于mybatis返回值为List集合的时候;返回size是1但是获取该对象时为null的问题

当使用Mybatis查询返回List集合,尽管size为1,但在尝试获取第一个元素时返回null。问题源于SQL查询的字段值全为null。解决方案是确保查询的字段中至少有一个字段有非空值,以避免映射的对象为null。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

在项目中使用mybatis映射的时候; 返回的结果集是List ;查询的结果集List的size是1 ; 然而在调用 list.get(0)的时候; 返回值为 null;

解决方案:

检查sql里面的查询字段; 是否至少有一个字段一定有值; 保证select 后面查询的某一个字段一定有值;不能select 后面的字段全为 null;

问题原因分析:

由于 select 的字段值查询的结果全部为 null ; 所以到就会导致该对象为null ; 如下图所示:
sql代码:

 SELECT  a ,b  FROM  table  where name= 487

执行结果:
查询结果然后 mybatis在映射到结果集的时候; 返回的改对象就会为 null ;

如图所示;下面截图是上面sql 通过maybatis映射返回的List里面的结果;
看到结果;长度为1;但是所有元素都为null ;
在这里插入图片描述然后调用 get(0)方法自然就会报空指针
在这里插入图片描述
分析一下上面的sql ;

首先数据库肯定是存在这条数据的;否则返回的 histories 这个集合的长度应该是0; 数据库表 tab

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值