重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天在别人的代码基础上实现新需求,看到对于mybatis查询结果的判断不是很正确,如果查询结果为空就会异常,不知道大家有没有这样的疑惑:mybatis中resultType有多种返回类型,对于每种不同类型,查询结果为空时dao接口的返回值是一样的吗?接下来我就总结一下常见的几种情况。
10余年的饶阳网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整饶阳建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“饶阳网站设计”,“饶阳网站推广”以来,每个客户项目都认真落实执行。
第一种:resultType为基本类型,如string(在此暂且把string归纳为基本类型)
如果select的结果为空,则dao接口返回结果为null
第二种,resultType为基本类型,如int
后台报异常:
org.apache.ibatis.binding.BindingException: Mapper method 'com.fkit.dao.xxDao.getUserById attempted to return null from a method with a primitive return type (int).
解释:查询结果为null,试图返回null但是方法定义的返回值是int,null转为int时报错
解决办法:修改select的返回值为String
第三种 resultType为类为map ,如map、hashmap
dao层接口返回值为null
第四种 resultType 为list ,如list
dao层接口返回值为[],即空集合。
注意:此时判断查询是否为空就不能用null做判断
第五种 resultType 为类 ,如com.fkit.pojo.User
dao层接口返回值null
总结
以上所述是小编给大家介绍的mybatis中查询结果为空时不同返回类型对应返回值问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!