【mybatis】如果程序中查询sql结果为空,会返回null还是空集合

就是java中用mybatis进行一个select查询,返回的结果是对象List,假如这个时候查询的数据正好没有,
请问返回的结果是null还是空的List

6个回答

刚刚测了一下,返回空的list

看你sql语句有没有full join 如果有的话就返回一个全为null的一条数据,没有就返回一个空的list。空list你读取的时候因为里面没数据,所以读取的是null

FIGHTSHINE
FIGHTSHINE 返回null,list=null,但如果没有带full join 的sql语句返回空list集合读取的是[ ],不是null。不要误导啊
8 个月之前 回复

这种自己写一个sql语句试一下就行,首先保证sql查询结果为空,然后在java中运行,自己亲测一遍,印象更深。

spring+mybatis实测
直接从mapper返回的list是一个没有内容、size为0的对象,也就是[],不为null

可能是你用了连表查询 例如 a left join table b 但是呢, 你查的是 b.* , 假如 b*没有数据 但是a.*有数据 ,此时会返回 [null] ,
size 为>0 ,, 如果去查条数,其实是按照 a表条数来的

list 和 set 返回的是空集 emptylist emptyset
具体看下面的回答
https://stackoverflow.com/questions/12156562/how-is-mybatis-dealing-with-an-empty-result-set

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐