当前位置: 首页 > news >正文

MyBatisPlus之DQL编程控制


在这里插入图片描述

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaEE
操作系统

石可破也,而不可夺坚;丹可磨也,而不可夺赤。


MyBatisPlus之DQL编程控制

  • 一、 条件查询方式(三种格式)
  • 二、 条件查询 -- -- null值处理
    • 2.1 if语句控制追加
    • 2.2 条件参数控制
    • 2.3 条件参数控制(链式编程)
  • 三、查询投影
    • 3.1 查询结果包含模型类中部分属性
    • 3.2 查询结果包含模型类中未定义的属性

一、 条件查询方式(三种格式)

  • MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合
  • 格式一:常规格式
		//方式一:按条件查询QueryWrapper qw = new QueryWrapper();//小于3qw.lt("id",3);List userList = userDao.selectList(qw);System.out.println(userList);
  • 格式二:链式编程查询
		QueryWrapper qw = new QueryWrapper();//小于3大于1qw.lt("id",3).gt("id",1);List userList = userDao.selectList(qw);System.out.println(userList);
  • 格式三:lambda格式(推荐)
		//方式三:lambda格式按条件查询LambdaQueryWrapper<User> lwq = new LambdaQueryWrapper<>();//id为1到3之间lwq.lt(User::getId,3);lwq.gt(User::getId,1);//id为小于2或者大于3//链式查询lwq.lt(User::getId,2).or().gt(User::getId,3);List userList = userDao.selectList(lwq);System.out.println(userList);
  • 并且:
qw.lt("id",3).gt("id",1);
  • 或者:
lwq.lt(User::getId,2).or().gt(User::getId,3);

二、 条件查询 – – null值处理

2.1 if语句控制追加

		UserQuery uq = new UserQuery();uq.setId(1);uq.setId2(3);//null判定LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();if(null != uq.getId()) {lqw.lt(User::getId,uq.getId2());}if(null != uq.getId2()) {lqw.gt(User::getId,uq.getId());}List<User> userList = userDao.selectList(lqw);System.out.println(userList);

2.2 条件参数控制

		//先判定第一个参数是否为true,如果为true,连接当前条件UserQuery uq = new UserQuery();uq.setId(1);uq.setId2(3);//null判定LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();lqw.gt(null!=uq.getId2(), User::getId, uq.getId())lqw.lt(null!= uq.getId(),User::getId,uq.getId2());List<User> userList = userDao.selectList(lqw);System.out.println(userList);

2.3 条件参数控制(链式编程)

		//先判定第一个参数是否为true,如果为true,连接当前条件UserQuery uq = new UserQuery();uq.setId(1);uq.setId2(3);//null判定LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();lqw.gt(null!=uq.getId2(), User::getId, uq.getId()).lt(null!= uq.getId(),User::getId,uq.getId2());List<User> userList = userDao.selectList(lqw);System.out.println(userList);

三、查询投影

3.1 查询结果包含模型类中部分属性

		LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();lqw.select(User::getId,User::getAddr);List<User> userList = userDao.selectList(lqw);System.out.println(userList);

3.2 查询结果包含模型类中未定义的属性

		QueryWrapper<User> qw = new QueryWrapper<>();qw.select("count(*) as count");qw.groupBy("gender");List<Map<String, Object>> userList = userDao.selectMaps(qw);System.out.println(userList);

相关文章:

MyBatisPlus之DQL编程控制

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 MyBatisPlus之DQL编程控制 一、 条件查询方式&…...

本地使用GFPGAN进行图像人脸修复

人脸修复 1.下载项目和权重文件2.部署环境3.下载权重文件4.运行代码5.网页端体验 首先来看一下效果图 1.下载项目和权重文件 https://github.com/iptop/GFPGAN-for-Video.git2.部署环境 根据README文件部署好环境&#xff0c;额外还需要&#xff1a; cd GFPGAN-1.3.8 pyt…...

Linux--进程概念

1.什么是程序&#xff1f;什么是进程&#xff1f;有什么区别&#xff1f; 程序&#xff1a;是静态的概念&#xff0c;gcc xxx.c -o pro 磁盘中生成的pro文件&#xff0c;叫做程序。 进程&#xff1a;是程序的一种与运行活动&#xff0c;通俗的意思是程序跑起来了&#xff0c;系…...

dex2oat编译模式、触发场景、命令强制执行

dex2oat简单理解就是把delvik虚拟机的可执行文件dex转化成AndroidRuntime虚拟机的可执行文件oat。 Android T版本由PKMS下发命令、native层进程installd负责具体执行dex2oat操作。installd回去调用dex2oat64完成编译工作&#xff0c;可以将dex2oat64理解成一个程序。源码路径&…...

深度学习 | TCN时间卷积神经网络模型答疑

深度学习 | TCN时间卷积神经网络模型答疑 目录 深度学习 | TCN时间卷积神经网络模型答疑问题汇总问题回答参考资料问题汇总 1.使用 TCN 进行序列建模有哪些优势? 2.TCN 的特征? 问题回答 1.使用 TCN 进行序列建模具备以下优势: 并行性。与 RNN 中后继时间步长的预测必须等待…...

Linux之修改服务端口号

本次演示以SSH服务为例&#xff0c;SSH默认监听端口是22,先保留了22端口&#xff0c;所以我们要进入ssh的配置文件添加新端口并注释或删掉原有端口。 1、使用vi编辑器修改文件 sshd_config,路径是/etc/ssh/sshd_config,找到“#Port 22”,添加新的端口号10086。 2、如果你关闭了…...

LeetCode笔记:Weekly Contest 361

LeetCode笔记&#xff1a;Weekly Contest 361 0. 吐槽1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现 比赛链接&#xff1a;https://leetcode.com/contest/weekly-contest-361 0. …...

Springboot快速搭建Web API项目

内容概述 SpringBoot最常见得用途就是web api项目。 本文介绍使用自动配置功能&#xff0c;通过最简洁的pom依赖&#xff0c;快速搭建一个示例项目。 实现的功能为&#xff1a;接收http请求并返回json格式的数据。 一、配置pom.xml依赖 1.引入springweb依赖 <dependenc…...

数据结构day06(单向循环链表、双向链表)

双向链表的练习代码 head.h #ifndef __HEAD_H__ #define __HEAD_H__ #include <stdio.h> #include <stdlib.h> #include <string.h> typedef int database; typedef struct double_link_list{union{database data;int len;};struct double_link_list* pre;…...

zabbix -- 新建主机

目录 一、新建主机 二、新建监控项 IP主机192.168.136.55zabbix控制端/服务端192.168.136.56zabbix被控端/客户端 一、新建主机 主机参数 名称、群组&#xff08;每台主机必须属于某个主机组内&#xff09;、ip、端口 创建完成&#xff0c;如果你的ZBX为灰色&#xff0c;代…...

=>符号含义

>主要有两方面的作用&#xff0c;一个限制属性状态&#xff0c;另一个简化匿名委托和Lambda 用法一&#xff1a;定义只读属性 public class ManPeople { public string Sex > "男";public string Name { get; set; }}public class WomanPeople { publi…...

Docker+Jenkins(blueocean)+Gitee构建CICD流水线实战

一、配置JDK 1.1 编辑profile文件 vim /etc/profile export JAVA_HOME/home/jdk/jdk1.8.0_301 export JRE_HOME$JAVA_HOME/jre export CLASSPATH.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib export PATH$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 1.2 使配置生效 source /etc/pro…...

Redis快速入门

文章目录 0. Redis介绍1. Centos下Redis安装2. redis.conf配置文件介绍3. redis相关命令4.redis中发布订阅和事务4.1 发布订阅&#xff08;Pub/Sub&#xff09;4.2 事务 5. redis封装系统服务6. 问题与解决6.1 启动Redis报错&#xff1a;Could not create Server TCP listening…...

EasyExcel 修改导出的文件属性

EasyExcel 修改导出的文件属性 导出的文件有多种属性,本文只针对sheet名称进行举例 需要自定义拦截器 ExcelWriter excelWriter EasyExcel.write(fileName).withTemplate(stream).registerWriteHandler(new TemplateSheetStrategyHandler()).build()registerWriteHandler (n…...

电子班牌云平台系统——智慧校园管理工具,多媒体信息发布、走班排课、家校互通、物联控制、教务管理、考勤管理、素质评价、日常办公

电子班牌云平台源码&#xff0c;saas模式微服务架构 电子班牌是一款智慧校园管理工具&#xff0c;也是校园多媒体展示平台。智慧班牌融合了多媒体信息发布、走班排课、家校互通、物联控制、教务管理、考勤管理、素质评价、日常办公等一系列应用&#xff0c;是校园管理的现代化手…...

docker-compose 部署 Seata整合nacos,Postgresql 为DB存储

docker-compose 部署 Seata整合nacos,Postgresql 为DB存储 环境 详情环境可参考 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 我这里 <spring.cloud.alibaba-version>2021.1</spring.cloud.alibaba-version>所…...

three.js 场景中如何彻底删除模型和性能优化

three.js 场景中如何彻底删除模型和性能优化 删除外部模型 在three.js场景中&#xff0c;要彻底删除外部模型&#xff0c;需要执行以下几个步骤&#xff1a; 从场景中移除模型 你可以使用 scene.remove(model) 或者 scene.remove(model.children[0]) 将模型从场景中移除。如果…...

Bridge Champ举办人机对战赛:NFT游戏与传统竞技共生发展编织新格局

概要 现在,NFT与体育竞技正日益紧密地联系在一起。一些体育项目开始推出与赛事或球队相关的NFT,同时也有部分NFT游戏开始举办电子竞技赛事。这种共生发展正在改变体育竞技的生态。 笔者采访了桥牌冠军项目相关负责人,探讨NFT游戏与传统体育竞技的融合潜力。桥牌冠军近期成功举…...

Visual Studio软件_MSC_VER值(MSVC编译器版本)的获取方法

本文介绍查看Visual Studio软件_MSC_VER值的方法。 _MSC_VER是微软公司推出的C/C 编译器——MSVC编译器的一个内置宏&#xff0c;其值表示当前Visual Studio软件中MSVC编译器的具体版本。不同的Visual Studio软件版本对应着不同的MSVC编译器版本——无论是不同发布年份的版本&…...

02-Linux-IO多路复用之select、poll和epoll详解

前言&#xff1a; 在linux系统中&#xff0c;实际上所有的 I/O 设备都被抽象为了文件这个概念&#xff0c;一切皆文件&#xff0c;磁盘、网络数据、终端&#xff0c;甚至进程间通信工具管道 pipe 等都被当做文件对待。 在了解多路复用 select、poll、epoll 实现之前&#xff…...

51单片学习ing

现在能够实现LED闪烁了&#xff01;&#xff01; 开心 今天学习了让LED闪烁以及LED流水灯&#xff0c;主要是了解了软件延时计算器这个工具 现在可以更灵活的变换LED的变换速度了&#xff0c;如下&#xff1a; 接下来学习到了c语言里模块化的思想&#xff0c;之前学习c的时候…...

Redis 相关命令详解及其原理

Redis 相关命令详解及其原理 文章目录Redis 相关命令详解及其原理1. Redis 简介2. Redis 安装2.1 包管理器安装2.2 源码编译安装2.4 验证安装3. Redis 基础原理3.1 单线程模型3.2 底层数据结构概述4. 数据类型详解4.1 String&#xff08;字符串&#xff09;底层存储结构常用命令…...

文华财经与博易大师双轨期货多空变色线指标实战解析

1. 双轨期货多空变色线指标是什么&#xff1f; 如果你经常使用文华财经或博易大师进行期货交易&#xff0c;一定对主图上的各种技术指标不陌生。今天要介绍的这个双轨期货多空变色线指标&#xff0c;可以说是趋势交易者的"秘密武器"。简单来说&#xff0c;它就像给K线…...

避坑指南:YOLOv8+PaddleOCR车牌识别中,那些让你识别率暴跌的细节

避坑指南&#xff1a;YOLOv8PaddleOCR车牌识别中那些让你识别率暴跌的细节 车牌识别系统在智慧交通、安防监控等领域的应用越来越广泛&#xff0c;但很多工程师在部署YOLOv8PaddleOCR方案时&#xff0c;明明按照教程一步步操作&#xff0c;实际识别效果却远不如预期。本文将揭…...

Plumbum管道与重定向完全教程:构建复杂Shell命令链

Plumbum管道与重定向完全教程&#xff1a;构建复杂Shell命令链 【免费下载链接】plumbum Plumbum: Shell Combinators 项目地址: https://gitcode.com/gh_mirrors/pl/plumbum Plumbum是一个强大的Python库&#xff0c;它让您在Python中编写shell脚本般简洁的代码&#x…...

nRF52832蓝牙开发实战:手把手教你配置广播与扫描(基于SES和nRF5 SDK 15.3)

nRF52832蓝牙开发实战&#xff1a;从零配置广播与扫描全流程解析 在物联网设备开发中&#xff0c;蓝牙低功耗&#xff08;BLE&#xff09;技术因其低功耗、低成本的特点成为连接智能设备的首选方案。作为Nordic Semiconductor的明星产品&#xff0c;nRF52832凭借其强大的处理能…...

别再给云存储打工了!手把手教你用飞牛NAS搭建低成本监控中心,守护小店每一分钱。

对于个体商户来说&#xff0c;监控是刚需&#xff0c;但传统的方案要么一次性投入巨大&#xff0c;要么长期订阅云存储费用高昂。本文将介绍一种基于 飞牛NAS 萤石摄像头 的本地化监控方案&#xff0c;旨在帮助商户省钱、好用、省心&#xff0c;实现监控成本的显著降低。&…...

新手福音:用快马生成交互式cad安装指南,轻松跨过第一道坎

作为一名CAD初学者&#xff0c;第一次安装软件时确实容易手忙脚乱。记得我当初光是找官方下载链接就花了半小时&#xff0c;安装过程中还差点勾选了捆绑软件。后来发现用InsCode(快马)平台可以快速生成交互式安装指南&#xff0c;整个过程变得特别顺畅。今天就把这个实用方法分…...

适合自动化测试练习的免费 API 清单

免费接口-聚合网站 https://www.juhe.cn/ 适合自动化测试练习的免费 API 清单,按场景分类,覆盖 REST/GraphQL、状态码验证、自定义 Mock 与真实数据,可直接用于接口测试(含 Python+pytest)练习。 一、核心免费 API 清单(按场景) 表格 名称 类型 核心用途 特点 访问方式…...

forkrun:革新数据处理,突破传统并行工具性能瓶颈

【导语&#xff1a;forkrun 作为一款自调优工具&#xff0c;可直接替代 GNU Parallel 和 xargs -P。它在现代 CPU 上能显著提升基于 Shell 的数据准备速度&#xff0c;尤其在 NUMA 架构上表现出色&#xff0c;为数据处理领域带来了新的变革。】数据处理速度的飞跃&#xff1a;5…...