一、问题由来

自己在查看日志时发现日志中打印了一行错误信息为:

组装已经放养的宠物数据异常--->Mapper method 'applets.user.mapper.xxxMapper.xxxmyRank attempted to return null from a method with a primitive return type (int).

意思很好理解,就是在某个mapper文件中的xxxmyRank 这个查询方法返回一个null,可是却需要返回一个int类型的数,因此报错。

二、问题分析

fdafdsaf 这个查询就是一个简单的查询,用来查询一个排名,自己查询排名的话使用int类型来接收就可以了。最开始测试的时候,也没什么问题,可是等项目真正上线之后

报出这个问题,才知道之前写的代码中存在这个问题。导致这个问题的原因是数据库没有查询到对应的数据,因此返回一个null值,自己写代码的时候却是使用int类型来进行

接收。如下图所示:

三、解决方案

找到问题的原因后,就很好解决,将接收的int类型改为包装类型Integer类型类进行接收,这样就可以解决这个问题。因为Integer类型可以为null,不管返回的具体的数值

还是一个null值,都能够接收。然后在代码中去进行null值的业务处理即可,问题解决。

拓展:Java代码中写自定义的数字字段时,最好也是使用包装类型来进行接收,

Byte,Boolean,Short ,Character,Integer,Long,Float,Double.

原理是一样的,假如查询的实体类中或者使用实体类来接受前端传递的数值,有可能没有值为null,这时候使用包装类型就可以很好的解决这个问题。

mybatis查询时使用基本数据类型接收报错-attempted to return null from a method with a primitive return type (int)的更多相关文章

  1. mysql查询null异常:attempted to return null from a method with a primitive return type

    select sum(deposit_amount)from tb_commission_ib_day mysql查询时报异常: attempted to return null from a met ...

  2. dotnetcore ef 调用多个数据库时用户命令执行操作报错

    dotnetcore ef 调用多个数据库时用户命令执行操作报错 1.多个DbContext 时报错: 报错: More than one DbContext was found. Specify w ...

  3. ionic使用iframe时无法显示网页或报错

    ionic使用iframe时无法显示网页或报错 Uncaught DOMException: Blocked a frame with origin 在config.xml中添加 <access ...

  4. js插件设置innerHTML时,在IE8下报错“未知运行时错误”

    问题描述: 网站中使用了一个js插件,设置innerHTML时,在IE8下报错“未知运行时错误”: <div id=”divContainer”> <a name=”link”> ...

  5. 安装hue时,make apps 编译报错

    安装hue时,make apps 编译报错 :"Error: must have python development packages for 2.6 or 2.7. Could not ...

  6. ROS常见问题(一) 安装ROS时sudo rosdep init指令报错 最全解决方法

    安装ROS时sudo rosdep init指令报错: ERROR: cannot download default sources list from: https://raw.githubuser ...

  7. 在运行vue项目时,执行npm install报错小记

    在运行vue项目时,执行npm install 报错,导致后续的执行报各种错误,根据报错,尝试了网上的各种办法,最后发现时网络问题下载失败导致,解决办法: 安装cnpm==>npm instal ...

  8. hibernate报错 java.lang.StackOverflowError: null

    在使用hibernate时,报错 java.lang.StackOverflowError: null 把当前线程的栈打满了 java.lang.StackOverflowError: null at ...

  9. c# 传递Null的string值导致的调用C++的dll报错 Attempted to read or write protected memory.

    c# 调用C++的dll报错 Attempted to read or write protected memory:   原因是:c# 传递Null的string值导致的,将Null改为string ...

随机推荐

  1. hbase调优

    @ 目录 一.phoenix调优 1.建立索引超时,查询超时 2.预分区 hbase shell预分区 phoenix预分区 3.在创建表的时候指定salting. 4.二级索引 建立行键与列值的映射 ...

  2. 重学Git(一)

    一.最最最基础操作 # 初始化仓库 git init # 添加文件到暂存区 git add readme.md # 提交 git commit -m 'wrote a readme file' 二.简 ...

  3. day32 HTML

    day32 HTML 什么是前端 只要是跟用户打交道的界面都可以称之为前端 # eg:电脑界面, 手机界面,平板界面, 什么是后端? eg:python, java,php,go, 不跟用户直接打交道 ...

  4. Mybatis相关知识点(二)

    Mybatis解决jdbc编程的问题 1. 数据库连接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题. 解决:在SqlMapConfig.xml中配置数据连接池,使用 ...

  5. 如果通过 IP 判断是否是爬虫

    通过 IP 判断爬虫 如果你查看服务器日志,看到密密麻麻的 IP 地址,你一眼可以看出来那些 IP 是爬虫,那些 IP 是正常的爬虫,就像这样: 在这密密麻麻的日志里面,我们不仅要分辨出真正的爬虫 I ...

  6. C语言产生随机数(伪)

    C语言的获取随机数的函数为rand(), 可以获得一个非负整数的随机数.要调用rand需要引用头文件stdlib.h.要让随机数限定在一个范围,可以采用模除加加法的方式.要产生随机数r, 其范围为 m ...

  7. Oracle—网络配置文件

    Oracle网络配置文件详解     三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下. 1 ...

  8. gitlab之实战部署

    #:准备Java环境,安装jdk root@ubuntu:~# cd /usr/local/src/ root@ubuntu:/usr/local/src# ls jdk-8u191-linux-x6 ...

  9. Default Assignment Operator and References

    We have discussed assignment operator overloading for dynamically allocated resources here . This is ...

  10. UIButton总结

    UIButton 1. 功能 既能显示文字,又能显示图片(能显示2张图片,背景图片.内容图片) 长按高亮的时候可以切换图片\文字 直接通过addTarget...方法监听点击 2. 状态 normal ...