原因看一下Sqlsession中selectOne源码就知道了:

mybatis中mapper配置resultType使用包装类的原因

这个方法会去调用selectList,很简单的,如果得到0条则返回null,得到1条则返回1条,得到多条报TooManyResultsException错
特别需要注意的是当没有查询到结果的时候就会返回null。因此一般建议在mapper中编写resultType的时候使用包装类型,而不是基本类型,比如推荐使用Integer而不是int。这样就可以避免NPE

 

但是有某些特殊情况,可以直接返回基础数据类型,比如查询记录条数啥的,查不到时,返回结果为0,不会出现查询结果为空的情况,所以不会出现NPE。

 

 

 

 

相关文章:

  • 2022-12-23
  • 2021-10-18
  • 2021-12-16
  • 2021-12-31
  • 2022-12-23
猜你喜欢
  • 2021-08-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
  • 2021-08-01
  • 2022-12-23
相关资源
相似解决方案