返回顶部
首页 > 资讯 > 后端开发 > Python >MyBatis查询无记录时的返回值问题
  • 332
分享到

MyBatis查询无记录时的返回值问题

2024-04-02 19:04:59 332人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis查询无记录的返回值在MyBatis 3.4.1下查询无结果时的返回值报错问题mybatis的查询无结果时报错MyBatis查询无记录的返回值 在MyBatis 3.

MyBatis查询无记录的返回值

在MyBatis 3.4.1下

如果Dao的返回值是实体,则select查询无记录时返回null。容易报空指针异常!

Notice findById();

如果Dao的返回值是List,则select查询无记录是返回的是[],也就是空数组

而不是null。所以这时候判空需要用CollectionUtils.isNotEmpty(),而不是"==null"

List<Notice> findById();

查询无结果时的返回值报错问题

mybatis的查询无结果时报错

(方法名)queryAllNumFromCart attempted to return null from a method with a primitive return type (long)的问题

queryAllNumFromCart此方法在mapper.xml中是这样定义的:

 <select id="queryAllNumFromCart" parameterType="java.lang.Integer" resultType="java.lang.Long">
      select sum(num) from t_cart where user_id = #{userId}
  </select>

在mapper中是这样定义的:

long queryAllNumFromCart(Integer userId);  //返回值为long类型

调用后运行报错:

java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Mapper method 'com.eGoo.mapper.CartMapper.queryAllNumFromCart attempted to return null from a method with a primitive return type (long).
org.apache.ibatis.binding.BindingException: Mapper method 'com.egoo.mapper.CartMapper.queryAllNumFromCart attempted to return null from a method with a primitive return type (long).
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:94)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
    at com.sun.proxy.$Proxy16.queryAllNumFromCart(Unknown Source)
    at com.egoo.service.impl.CartServiceImpl.getTotalFromMysql(CartServiceImpl.java:370)
    at com.alibaba.dubbo.common.bytecode.Wrapper2.invokeMethod(Wrapper2.java)
    at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:47)
    at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:76)
    at com.alibaba.dubbo.config.invoker.DelegateProviderMetaDatainvoker.invoke(DelegateProviderMetaDataInvoker.java:52)
    at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)
    at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:62)
    ......

主要报错原因的语句为:

(method)attempted to return null from a method with a primitive return type (long)

此方法企图从定义了原始的返回类型(long)的方法中返回null ,显而易见,此处的返回值类型有问题。网上搜了之后发现是mybais的返回值为包装类,且sql语句的定义的返回值类型为:java.lang.Long。查询数据库为空后,会返回null而不是0L,所以此处需要将方法的返回值类型改为包装类java.lang.Long:

//Long queryAllNumFromCart(Integer userId);  //当查询到的数据为0条时,会返回null,而不是0,可以改为包装类

或者在sql语句中加入IFNULL(expr1,expr2)的函数进行判断:

select IFNULL(sum(num),0) from t_cart where user_id = 1

建议还是使用修改sql语句的方式。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: MyBatis查询无记录时的返回值问题

本文链接: https://lsjlt.com/news/163283.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MyBatis查询无记录时的返回值问题
    目录MyBatis查询无记录的返回值在MyBatis 3.4.1下查询无结果时的返回值报错问题mybatis的查询无结果时报错MyBatis查询无记录的返回值 在MyBatis 3....
    99+
    2024-04-02
  • MyBatis查询无记录时返回值报错怎么办
    本篇内容主要讲解“MyBatis查询无记录时返回值报错怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MyBatis查询无记录时返回值报错怎么办”吧!MyBatis查询无记录的返回值在MyB...
    99+
    2023-06-28
  • mybatis-plus返回查询总记录数方式
    目录mybatis-plus返回查询总记录数mybatis-plus分页查询,总条数为零的解决mybatis-plus返回查询总记录数 mp框架提供了selectCount...
    99+
    2024-04-02
  • 解决mybatis一对多查询resultMap只返回了一条记录问题
    问题描述:因为领导的一个需求,需要用到使用resultMap,很久没使用了,结果就除了点意外。就记录下这个问题 准备两个类:author(作者)和book(书),数据库创建对应的au...
    99+
    2024-04-02
  • Mybatis-plusforeach拼接字符串查询无数据返回问题
    目录foreach拼接字符串查询无数据返回两种解决方式精讲#{}和${}的区别是什么?对于这个问题我感觉要抓住两点foreach拼接字符串查询无数据返回 Mybatis-plus x...
    99+
    2024-04-02
  • 怎么解决mybatis一对多查询resultMap只返回了一条记录问题
    本篇内容介绍了“怎么解决mybatis一对多查询resultMap只返回了一条记录问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题描述...
    99+
    2023-06-21
  • Mybatis Update操作返回值问题
    后端的数据持久化使用的是 Mybatis ,在做高并发下账户增减余额的时候,打算使用乐观锁来解决这个问题。在获取update操作的返回值时遇到了一个问题,似乎 Mybatis 进行 update 操作得到的 int 返回值并不是影响的行数。...
    99+
    2023-05-31
    mybatis update 返回值
  • mybatis-plus返回查询总记录数的方法是什么
    这篇“mybatis-plus返回查询总记录数的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mybatis-pl...
    99+
    2023-06-26
  • 关于mybatis resulttype 返回值异常的问题
    目录mybatisresulttype返回值异常例如:resulttype="student"但是当中有些字段为空例如:数据库字段为:s_name实体类字段为namemybatisresultType="map"的常见问题一、map的key...
    99+
    2015-02-25
    mybatis resulttype 返回值异常 resulttype返回值
  • MyBatis实现多表联合查询resultType的返回值
    目录多表联合查询resultType的返回值一般数据按参数类型返回根据某字段查询查询结果为多条记录,存放在list中返回多表联合查询解决方案多表联查,返回结果嵌套list多表联合查询...
    99+
    2024-04-02
  • Mybatis的resultMap返回map问题
    目录resultMap返回map问题简单封装resultMap返回对象为mapresultMap返回map问题 <resultMap type="Map" id="bankMa...
    99+
    2024-04-02
  • 使用php怎么查询返回记录数
    使用php怎么查询返回记录数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。PHP查询语句,有两种方法获得查询的总记录数。MySQLi 面向过程的方式$sql =&nb...
    99+
    2023-06-15
  • springboot使用mybatis一对多的关联查询问题记录
    springboot使用mybatis一对多的关联查询 由于刚开始写java不久,对sql语句的熟悉度还是不够熟练,虽然现在使用的mybatisPlus比较多,但我始终觉得sql不能...
    99+
    2024-04-02
  • MyBatis如何实现多表联合查询resultType的返回值
    这篇“MyBatis如何实现多表联合查询resultType的返回值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MyBat...
    99+
    2023-06-29
  • 一次线上websocket返回400问题排查的实战记录
    目录现象抓包排查问题定位解决方案1解决方案2原因探讨总结现象 生产环境websocket无法正常连接,服务端返回400 bad request,开发及测试环境均正常。 抓包排查 s...
    99+
    2024-04-02
  • mybatis-plus分页查询临时返回所有数据
    我们在编写业务逻辑时候,有时需要借助mybatis-plus分页查询,但需要返回全部符合条件的数据,经过实践发现,只需要把 Page 对象的 current,size 全部重置为 -1 即可实现全部数据的返回。  示例代码: publ...
    99+
    2023-09-11
    mybatis java mysql
  • MyBatis查询数据返回null的解决
    MyBatis查询返回null 可能原因 SQL语句查询条件有问题数据库中没数据返回字段与Entity的属性不对应 解决方案 针对 SQL语句查询条件有问题、数据库中没数据...
    99+
    2023-02-05
    MyBatis返回null MyBatis查询返回null
  • 解决mybatis-plus 查询耗时慢的问题
    mybatis-plus 查询耗时慢 1、现象 查出30000多条id 然后用 EntityWrapper ew = new EntityWrapper<>(); ...
    99+
    2024-04-02
  • 解决mybatis查询结果为null时,值被默认值替换问题
    目录查询结果为null时,值被默认值替换问题原因解决办法myBATis查询结果处理处理核心流程返回类型处理ResultHandler字段类型处理TypeHandler查询结果为null时,值被默认值替换 问题:pojo种...
    99+
    2022-07-07
    mybatis查询结果 mybatis查询结果为null 值被默认值替换
  • C++中cin的返回值问题
    目录cin的返回值cin流输入的返回值问题cin的返回值 今天在用STL时用到while(cin>>s1>>a>>s2>>b)这样的语...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作