问题描述
在项目中使用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