mybatis中查询结果为空时不同返回类型对应返回值

今天在别人的代码基础上实现新需求,看到对于mybatis查询结果的判断不是很正确,如果查询结果为空就会异常,不知道大家有没有这样的疑惑:mybatis中resultType有多种返回类型,对于每种不同类型,查询结果为空时dao接口的返回值是一样的吗?接下来我就总结一下常见的几种情况。

第一种: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

原文地址:https://www.cnblogs.com/xxjcai/p/11664315.html

时间: 2024-12-29 01:36:13

mybatis中查询结果为空时不同返回类型对应返回值的相关文章

当Table中td内容为空时,显示边框的办法

原文:当Table中td内容为空时,显示边框的办法 1111111111111 目录 定义和用法 实例 浏览器支持 可能的值 定义和用法 说明 实例 浏览器支持 可能的值 相关页面 1. 在 table的css里面加: border-collapse:collapse; 在 td 的css里面加:      empty-cells:show; 2 .最简单的就是 在TD里写个  说明: border-collapse设置或检索表格的行和单元格的边是合并在一起还是按照标准的HTML样式分开. 定义

问题处理:php json_decode函数处理的字符串中含有反斜杠“\”时,处理出错,返回的结果为NULL

php json_decode函数处理的字符串中含有反斜杠“\”时,处理出错,返回的结果为NULL. 处理方法,将字符串中的反斜杠1个替换成2个: /** * 一个反斜杠要替换成4个,否则json_decode不能解析 */ $json_str = str_replace('\\','\\\\',$json_str); $json = json_decode($json_str,true);

RegQueryValueEx检索一个已打开的注册表句柄中,指定的注册表键的类型和设置值。

1VC声明 1 2 3 4 5 6 7 8 LONG RegQueryValueEx(     HKEY hKey,            // handle to key     LPCTSTR lpValueName,  // value name     LPDWORD lpReserved,   // reserved     LPDWORD lpType,       // type buffer     LPBYTE lpData,        // data buffer    

mybatis查询结果为空时的返回值问题

先贴出配置文件 <select id="queryUserGroupByName" resultType="UserGroupModel"> select * from user_group where roleName='user' and groupName=#{groupName} </select> 对应的mapper List<UserGroupModel>queryUserGroupByName(String grou

esayUi中datagrid中json串为空时,显示上一次数据的解决方法

function initSearchProject(startDate,finishDate,flag) {        $("#finishDate").val(finishDate);    $("#startDate").val(startDate);    var reflag=$('#reflag').val(flag);    $('#dg').datagrid({        queryParams : {        'startDate':

SQL SERVER中查询参数为空(null)时默认查询所有的实现

最近在项目中碰到一个比较有意思的问题,网上查找了一些方法,在这里总结分享一下. 我们经常会碰到这样的场景:需要查询数据,有一些查询条件,但是查询的时候,我们希望在某个条件为空的时候,则不筛选这个条件,处理的思路主要有这么几种: 1.程序收集查询查询条件的时候处理,这种适合动态SQL的,拼接SQL的时候根据参数是否为空来决定是否拼接对应的查询条件. 2.SQL中处理,这种情况适合存储过程,参数固定的场景,或者是非拼接where条件的场景,存储过程中一般没有使用拼接SQL的方式,那么如何实现参数为n

mysql中查询时间为空的数据

mysql表中datetime类型的字段名createtime,查询所有createtime为空的语句如下: select * from yy_business where ISNULL(createtime) is TRUEupdate yy_business set createtime='2015-01-21 17:24:58' where ISNULL(createtime) is TRUE

在hive中查询导入数据表时FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict

当我们出现这种情况时 FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict 这时候我们需要改变一下设置 set hive.exec.dynamici.partition=true;set h

查询框实现无点击事件时默认颜色,点击时清空查询空,失去焦点且查询匡为空时还原默认状态

<input id="search" type="text" value="输入类别.编号.名称.主办.分类搜索"> $("#search").focus(function(){ $(this).css("color","black");//点击后黑色 $(this).addClass("focus"); if($(this).val() ==this.d