踩坑系列—mybatis查询没有数据时返回的list是null还是空集合?

2023-11-01

场景:
根据多个条件查询,返回list集合数据

代码:

// 第1步:根据页面多个条件查询
List<Base> list = userDao.queryOrders(queryParams);

if(null == list)
	return null;

//第2步:有数据再追加其他信息
List<Long> ids = new ArrayList<>(list.size());
for (Base base : list){
		ids.add(base.getId());
}

//第3步:根据ids使用in查询

//第4步:将追加完信息的list返回

现象:

测试的时候少输入了某个条件,queryOrders查询有结果,代码正常,但是当输入这个条件,导致queryOrders没有查询结果时,报了sql错误,而且错误的sql是 【第3步:根据ids使用in查询】 这里导致的。

排查:

按自己之前的理解,queryOrders没有查询结果,
if(null == list)
return null;
这里就会返回,不会执行下面的代码,但是结果非预期,于是打印list,观察

List<Base> list = userDao.queryOrders(queryParams);
logger.info("query result list size:" + (null == list ? "空" : list.size()));

当输入查询条件,queryOrders没有查询结果时,控制台打印出的信息:
2019-02-19 15:07:24,003 INFO(PurchasingRemoteSerciceImpl.java:123) - query result list size:0

测试结果:
mybatis查询没有数据时返回的list是空集合,即size=0 并不是null

更改代码如下,查询正常:

List<Base> list = userDao.queryOrders(queryParams);
if(CollectionUtils.isEmpty(list))
	return null;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

踩坑系列—mybatis查询没有数据时返回的list是null还是空集合? 的相关文章

  • NEON简单介绍

    ARM Advanced SIMD nick named NEON it provides 1 A set of interesting scalar vectorinstructions and registers the latter

随机推荐

  • Mysql8官方分布式数据库MGR最佳实践

    MGR简介 MGR是mysql Group Replication简称 中文名称是Mysql组复制 MGR是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案 提供了高可用 高扩展 高可靠的MySQL集群服务 目前只支
  • flutter 圆角裁剪

    需求 高宽 为40 圆角度20 1 先实现高宽40方形 创建 Container 设置 width 40 height 40 如果需要颜色 自行在 color设置 2 设置圆角度 使用Physicalmodel方式 需要设置 color b
  • Python日期格式处理

    数据分析工作中 Python和SQL是常用的两大工具 常见的数据类型有数值型 字符串型 日期型等 对日期型格式进行处理也是比较常见的情形 文章SQL中日期格式处理记录了SQL针对日期型字段的处理过程 本文记录Python对日期型数据的处理
  • Linux 下创建新用户并且添加为root组用户

    1 创建用户及设置密码 创建用户名 useradd test 设置密码 passwd test 输入两次密码 test 2 给新用户授root权限 1 chmod v u w etc sudoers 增加 sudoers 文件的写的权限 默
  • 有关StandardScaler的transform和fit_transform方法

    背景 StandardScaler类是一个用来讲数据进行归一化和标准化的类 所谓归一化和标准化 即应用下列公式 使得新的X数据集方差为1 均值为0 问题一 StandardScaler类中transform和fit transform方法有
  • OpenCV中利用knn进行数字(0-9)识别--RGB-D相机采集

    目录 前言 一 KNN原理 二 数字识别系统效果演示 三 数字识别系统 1 图像采集 2 阈值分割 定位数字区域 3 轮廓特征分析 定位数字区域 4 数字轮廓提取 5 扩充边界并归一化其尺寸 6 训练数据集并预测测试样本 总结 前言 本章使
  • Google Cloud API设计指南

    目录 一 基于资源的设计 什么是 REST API 设计流程 资源 方法 示例 Gmail API Cloud Pub Sub API Cloud Spanner API 二 资源名称 完整资源名称 相对资源名称 资源 ID 集合 ID 资
  • 牛客:华为机试---人民币转换

    1 题目描述 考试题目和要点 1 中文大写金额数字前应标明 人民币 字样 中文大写金额数字应用壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万 亿 元 角 分 零 整等字样填写 30分 2 中文大写金额数字到 元 为止的 在 元 之后 应
  • ubuntu18 安装gcc 9遇到add-apt-repository: command not found

    sudo add apt repository ppa ubuntu toolchain r test 执行上面命令遇到add apt repository command not found问题 尝试了各种方法 发现下面方法最有用 依次执
  • Makefile 中的几种 等号

    在Makefile中我们经常看到 这几个赋值运算符 那么他们有什么区别呢 我们来做个简单的实验 新建一个Makefile 内容为 ifdef DEFINE VRE VRE Hello World else endif ifeq OPT de
  • 《HRNet-OCR:Object-Contextual Representations for Semantic Segmentation》论文笔记

    参考代码 HRNet OCR 1 概述 导读 这篇文章研究了语义分割中上下文信息的提取与表达 其方法设计的灵感来自于 分割中一个像素的label是其对应目标 object 的类别 那么基于此文章便是通过不同object区域的表达去关联并表达
  • spring-security--基础--5.1--ACL--介绍

    spring security 基础 5 1 ACL 介绍 代码位置 https gitee com DanShenGuiZu learnDemo tree master spring security learn 1 介绍 ACL 访问控
  • JDBC(数据库连接)——url写法

    JDBC的URL 协议名 子协议名 数据源名 协议名 总是 jdbc 子协议名 数据库类型协议 数据源名 用户 数据库名等信息 常见的数据库连接 oracle 驱动 oracle jdbc driver OracleDriver URL j
  • 解析智能扫地机器人中蕴含的情感元素

    在新一轮新冠疫情爆发后 大众宅在家的时候也变多起来 对于居家清洁的需求也越来越旺盛 人们希望可以从日常的繁琐的家务中解放出来 其中智能扫地机器人就占有一席之地 在市场需求持续走高的催生下 技术也在不断革新换代 根据数据显示 2021年前11
  • js数组处理方法总结slice、join、filter、map、indexOf、reduce、reduceRight等

    归纳总结数组的处理方法如下 1 splice 功能 1 删除 从数组中删除元素 两个参数 第一个参数 要删除元素的起始位置 第二个参数 要删除的项数 2 添加 插入元素到数组中 三个参数 第一个参数 起始位置 第二个参数 0 第三个参数 插
  • 【论文速递】TPAMI2022 - 自蒸馏:迈向高效紧凑的神经网络

    论文速递 TPAMI2022 自蒸馏 迈向高效紧凑的神经网络 论文原文 Self Distillation Towards Efficient and Compact Neural Networks 获取地址 https ieeexplor
  • virsh help domain命令内容解析

    简介 这段时间学习热迁移 要不断的在qemu monitor和libvirt中调转使用命令 故整理virsh命令 这篇是第一篇 整理virsh help domain相关内容 span style color 656565 span sty
  • 相约清华!AI药物研发大赛总决赛明日开幕

    2022年 百度飞桨联合清华大学药学院 筹备建设 AI 药学 产学研融合创新基地 推出了一系列AI 生物计算前沿课程和人才培养计划 今年5月 百度飞桨联合清华大学药学院 百度智能云和临港实验室 共同发起了首届全球AI药物研发算法大赛 并得到
  • mac如何卸载python2.7_mac python环境的安装与卸载

    换电脑之前并没有了解很多mac 所以习惯性的安装软件都是官网或者appstore下载来安装的 so 我下载了python2 7 并安装了 后来学习的视频是3 6的版本 又下载的3 6的版本来安装 过程中知道自带python2 7版本 也看到
  • 踩坑系列—mybatis查询没有数据时返回的list是null还是空集合?

    场景 根据多个条件查询 返回list集合数据 代码 第1步 根据页面多个条件查询 List list userDao queryOrders queryParams if null list return null 第2步 有数据再追加其他