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

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

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

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

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

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

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

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