mybatis 查询结果返回 list<pojo> 和 一个 pojo 类 的一些坑

简介: mybatis 查询结果返回 list<pojo> 和 一个 pojo 类 的一些坑

一、 问题

开发中难免会遇到使用mybatis 进行数据查询,返回一个list 或者单个实体类(pojo类)的情况,但是mybatis在查询不到数据的时候处理方式并不同,如果接受数据后直接进行下一步的业务代码,则经常会遇到空指针异常(NullPointerException)


二、mybatis的两种处理方式


1. 若返回值为List集合,查询结果为空时会实例化一个空的集合对象,大小为0,并非为null。


2. 若返回值为pojo类,查询结果为空时,返回值为null。


三、代码验证

@Controller
public class TestController {
    @Resource
    private UsersMapper usersMapper;
    @RequestMapping("user/{id}")
    public void testtest(@PathVariable("id") int id){
        User user = usersMapper.selectById( id);
        List<User> userList = usersMapper.selectList();
        if(user!=null){
            System.out.println(user);
        }else{
            System.out.println("user为null");
        }
        if(userList!=null){
            System.out.println("List的大小:" + userList.size());
        }else{
            System.out.println("List为null");
        }
    }
}


输出结果:


users为null


List的大小:0


目录
相关文章
|
19天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
20 0
|
1月前
|
存储 NoSQL Redis
【Redis】利用Redis List实现数据库分页快速查询
【Redis】利用Redis List实现数据库分页快速查询
118 0
|
1月前
|
存储 缓存 NoSQL
利用Redis List实现数据库分页快速查询的有效方法
利用Redis List实现数据库分页快速查询的有效方法
|
1月前
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
16 1
|
1月前
|
Java 关系型数据库 数据库连接
MyBatis Plus 解决大数据量查询慢问题
MyBatis Plus 解决大数据量查询慢问题
|
1月前
|
SQL Java 数据库连接
Mybatis查询的时候BigDecimal类型的值查询失效的解决办法
Mybatis查询的时候BigDecimal类型的值查询失效的解决办法
|
1月前
|
安全 Java API
Java并发 - J.U.C并发容器类 list、set、queue
Queue API 阻塞是通过 condition 来实现的,可参考 Java 并发 - Lock 接口 ArrayBlockingQueue 阻塞 LinkedBlockingQueue 阻塞 ArrayQueue 非阻塞 LinkedQueue 非阻塞
|
1月前
|
缓存 Java 数据库连接
MyBatis Plus的“幻查” 规范到底要怎样使用哪几个查询函数 为什么会出现幻查?还有幻删为什么会删不掉
MyBatis Plus的“幻查” 规范到底要怎样使用哪几个查询函数 为什么会出现幻查?还有幻删为什么会删不掉