MyBatis查询返回类型为int,查询结果为空NULL,报异常解决
例如:
<select id="getPersonRecordId" parameterType="java.lang.String" resultType="int">select role_idfrom p_person_rolewhere stffe_id = #{stffeId,jdbcType=VARCHAR}</select>
当记录不存在时会报以下错误
Servlet.service() for servlet [springDispatcherServlet] in context with path [/xxxx] threw exception [Request processing failed;
nested exception is org.apache.ibatis.binding.BindingException: Mapper method 'com.xxx.PersonRoleRelationMapper.getPersonRecordno attempted to return null from a method with a primitive return type (int).]
with root cause org.apache.ibatis.binding.BindingException: Mapper method 'com.xxx.PPersonRoleRelationMapper.getPersonRecordno attempted to return null from a method with a primitive return type (int).
若遇到该问题,可使用MySQL的IFNULL函数和MAX函数,将返回的NULL值转换为0。例如,可将上述SQL语句改为:
select IFFULL(MAX(role_id),0) AS role_id from p_person_role where stffe_id = #{stffeId,jdbcType=VARCHAR}
在SQLSERVER中我们可以这样写:
select ISNULL(max(data),0) ...
在Oracle中我们可以这样写:
select NVL(max(data),0) ...
对于所有数据库适用的方法可以这样写:
select COALESCE(max(data),0) ...
当然以上max也可以用sum函数代替。
MyBatis查询返回类型为int,查询结果为空NULL,报异常解决相关推荐
- Java中使用MultipartFile类型接收前端上传的文件过大报异常解决
问题:在使用MultipartFile类型上传文件时,发现上传的文件过大会报异常,异常信息如下: org.apache.tomcat.util.http.fileupload.impl.SizeLim ...
- Mybatis xml映射文件错误,导致Tomcat无法启动,也不报异常
在做的项目,有时候tomcat启动会陷入死循环,一直在启动中,无法结束,自然也不会报异常. 查了一下网上的资料,需要自己重写一下SqlSessionFactoryBean中的buildSqlSessi ...
- php 查询返回数组长度,php查询数组长度的方法
php查询数组长度的方法 发布时间:2020-08-11 09:53:44 来源:亿速云 阅读:97 作者:小新 这篇文章给大家分享的是有关php查询数组长度的方法的内容.小编觉得挺实用的,因此分享给 ...
- jpa 原生sql 查询返回一个实体_JPA查询--使用原生sql 并且把查询结果转为实体对象...
这篇文章主要记录 使用原生sql查询 并且把查询结果转为实体对象, 注意:这儿使用的数据库 是oracle数据库 这儿记录了三种查询:精确查询,模糊查询,分页查询. 1.把原生sql查询的结果转为实体 ...
- oracle统计查询返回数量,统计Oracle 查询事务数的方法
大家好!AningDBA又和大家见面了,今天朋友问我一个问题,把我给问住了,问题听起来很简单,就是查询"每天的事务数". 听到这个问题,大家的第一反映,我相信大部分人会和我一样,首 ...
- java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
当取出这个值的时候只能用java.sql.Date而且只能显示年月日,我想知道如何才能显示时分秒 PS:不改变用getdate()存入的前提下! 解决方法:将getDate()方法改为getTim ...
- JPA查询单个字段和多个字段返回类型总结
在使用springboot中,需要使用JPQL和SQL去查询记录. 获取一整条记录,返回的类型就是对应的实体类或者实体类的集合. 当不是全部字段时,返回类型就不能是实体类了. 以下是用JPQL和SQL ...
- JdbcTemplate(操作数据库-查询返回值)
目录 JdbcTemplate(操作数据库-查询返回值) 1.创建数据库 2.创建实体类 3.创建dao层 4.创建service层 5.创建测试类: 6.xml配置 7.测试结果: 8.结构示意: ...
- mysql int和bigdecimal,mysql的 int 类型,刨析返回类型为BigDicemal 类型的奇怪现象
用的是Map,List>接收, sql语句中int类型的值做了聚合运算, 满足上述两个条件. java中去取value的值就会变成BigDecimal 类型 经过实测:mybatis 中的sql ...
最新文章
- UE5和Blender中的完整场景环境创建学习教程
- python 网络编程_Python网络编程(六)
- mysql查询补丁更新_OS:服务器系统补丁及数据库补丁更新说明
- 织梦 css里的图片标签,织梦{dede:field.body /}中用CSS的expression参数控制图片大小
- 使用FFmpeg从视频中截图的命令
- runtime官方文档
- C++远航之封装篇——对象指针、this指针
- Java常量设计与常量池
- java mongodb 副本集,MongoDB副本集
- 2台mysql集群_如何安装配置基于2台服务器的MySQL集群
- python的设计哲学_Python的设计哲学
- Win10激活 及 图标整理
- 借助终端软件,有效统一移动互联网和物联网
- Photoshop软件介绍
- 自己写的一点福利代码(一)
- Mac 上的 iOS App 可用性(IOS APP availability on Mac)
- 2017_SIGIR_Item Silk Road: Recommending Items from Information Domains to Social Users
- .md文件中插入本地图片并显示图片预览
- JavaScript 可能问到的零星知识点
- [软件渲染器入门]六-应用纹理、背面剔除以及一些WebGL相关
热门文章
- oracle数据库dca,有关Oracle数据库
- C++程序如何执行cmd命令;如何对cmd命令执行计时;如何一行执行多条cmd命令;
- new和delete创建和销毁二维数组
- pytorch1.4+tensorboard不显示graph计算图的问题
- 花书+吴恩达深度学习(十三)卷积神经网络 CNN 之运算过程(前向传播、反向传播)
- 01背包、完全背包、多重背包问题的C++实现及路径记录
- 梯度下降法and实战
- 雕虫晓技(十) Android超简单气泡效果
- 130分的计算机专科学校排名及分数线,2021专科学校排名及分数线是多少
- 成绩查询数据结构c语言,学生成绩管理系统(数据结构c语言版源代码)09169.pdf