MyBatisPlus---DQL编程控制
MP将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合。
一、条件查询
package com.itheima; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.itheima.dao.UserDao;
import com.itheima.domain.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import java.util.List; @SpringBootTest
class Mybatisplus02DqlApplicationTests { @Autowired
private UserDao userDao; @Test
void testGetAll() { //方式一:查询age字段小于18。
// QueryWrapper qw = new QueryWrapper();
// qw.lt("age", 18);
// List<User> users = userDao.selectList(qw);
// System.out.println(users); //方式二:lambda格式查询age字段小于18
// QueryWrapper<User> qw = new QueryWrapper();
// qw.lambda().lt(User::getAge, 18);
// List<User> users = userDao.selectList(qw);
// System.out.println(users); //方式三:lambda格式查询age字段小于18
// LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
// lqw.lt(User::getAge, 18);
// List<User> users = userDao.selectList(lqw);
// System.out.println(users); // lambda格式多条件查询age字段小于(lt)18, 大于(gt)5
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//5到18岁之间:链式编程
// lqw.lt(User::getAge, 18);
// lqw.gt(User::getAge, 5);
// lqw.lt(User::getAge, 18).gt(User::getAge, 5); //小于5岁,或者大于18岁
lqw.lt(User::getAge, 5).or().gt(User::getAge, 18);
List<User> users = userDao.selectList(lqw);
System.out.println(users); } }
二、条件查询--null值处理
//模拟页面传递过来的查询数据
UserQuery uq = new UserQuery();
// uq.setAge(10);
uq.setAge2(30); //null判定
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
// lqw.lt(User::getAge, uq.getAge2());
//先判定第一个参数是否为true,如果为true连接当前条件
lqw.lt(uq.getAge2()!=null, User::getAge, uq.getAge2());
// lqw.gt(User::getAge, uq.getAge());
lqw.gt(uq.getAge()!=null, User::getAge, uq.getAge()); List<User> users = userDao.selectList(lqw);
System.out.println(users);
三、查询投影
//查询投影
// LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
// lqw.select(User::getId, User::getName, User::getAge);
// QueryWrapper<User> lqw = new QueryWrapper<User>();
// lqw.select("id", "name", "age", "tel");
// List<User> users = userDao.selectList(lqw);
// System.out.println(users); //查所有,分组查询
QueryWrapper<User> lqw = new QueryWrapper<User>();
lqw.select("count(*) as count, tel");
lqw.groupBy("tel");
List<Map<String, Object>> userList = userDao.selectMaps(lqw);
System.out.println(userList);
//条件查询
//查询name为Jerry、密码为jerry的用户是否存在
// LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
// lqw.eq(User::getName, "Jerry").eq(User::getPassword, "jerry");
// User user = userDao.selectOne(lqw);
// System.out.println(user); //范围查询 lt(<) le(<=) gt()> ge(>=) eq(==) between
// LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
// lqw.between(User::getAge, 10, 30);
// List<User> users = userDao.selectList(lqw);
// System.out.println(users); //模糊匹配
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//likeLeft: "%J" likeRight: "J%"
lqw.likeLeft(User::getName, "J");
List<User> users = userDao.selectList(lqw);
System.out.println(users);
MyBatisPlus---DQL编程控制的更多相关文章
- Delphi - 利用DLL编程控制摄像头实现拍照、录制视频
Delphi利用avicap32.dll编程控制摄像头实现拍照.录制视频 项目需求:平板电脑(Windows系统)一维/二维码扫描功能: 需求分析: 需要扫描一维/二维码时,分两步实现. 第一步,av ...
- [C#] 编程控制笔记本蓝牙与外部蓝牙设备通信
一.蓝牙模块XLBT232‐D01介绍(外部设备蓝牙) 1.1.蓝牙模块简介 XLBT232-D0101蓝牙模块采用CSR BlueCore 芯片,配置6-8Mbit 的软件存储空间, 支持AT 指令 ...
- 利用Delphi编程控制摄像头(图)
你的电脑有没有摄像头?看到别人用QQ玩视屏你会不会去想怎么实现的?这里介绍使用DELPHI使用MS的 AVICAP32.DLL就可轻松的实现对摄像头编程,如果再加上你的网络编程水平,实现一个视屏聊天就 ...
- Shell编程—控制脚本
1处理信号 1.1信号表 编号 信号名称 缺省操作 解释 1 SIGHUP Terminate 挂起控制终端或进程 2 SIGINT Terminate 来自键盘的中断 3 SIGQUIT Dump ...
- Team Foundation API - 编程控制文件版本
Team Foundation Server (TFS)工具的亮点之一是文件的版本控制.在TFS中实现文件版本控制的类型: Microsoft.TeamFoundation.Client.TfsTea ...
- 一篇文章带你掌握MyBatis简化框架——MyBatisPlus
一篇文章带你掌握MyBatis简化框架--MyBatisPlus 我们在前面的文章中已经学习了目前开发所需的主流框架 类似于我们所学习的SpringBoot框架用于简化Spring开发,我们的国人大大 ...
- CAN总线简介:如何以编程方式控制汽车
最近,我正与Voyage公司的朋友合作研究,以实现福特Fusion空调系统(A/C)的编程控制.目前,Voyage公司正努力打造自动驾驶的终极目标:能够以低廉的价格成本和广泛的投放范围,把世界任何地方 ...
- 单片机与控制实验(2)——LED点阵显示屏
一.实验目的和要求 了解LED点阵显示的基本原理和实现方法.掌握点阵汉字库的编码和从标准字库中提取汉字编码的方法. 二.实验设备 单片机测控实验系统 LED点阵显示器实验模块 Keil开发环境 STC ...
- Dom编程
Dom编程 Dom是一种用于HTML和XML文档的编程接口,是HTML页面的模型,将每个标签都做为一个对象,JavaScript通过调用DOM中的属性.方法就可以对网页中的文本框.层等元素进行编程控制 ...
- 如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
随机推荐
- developer mode
PS C:\Windows\system32> reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio ...
- JS斐波那契数列O(n)
function fibonacci(n) { return fib(n)[n] } var fib=(function(n){ var meo=[0,1] return function(n){ f ...
- 在mysql中正常查询的句子,在C#中出错,原因是定义了变量。
在C#中 查询一样. 运行报错 Fatal error encountered during command execution." 命令执行过程中碰到的致命错误." MySqlE ...
- Bugku Log4j2 漏洞题目 解题参考
Log4j2 漏洞题目 题目地址 https://ctf.bugku.com/challenges/detail/id/340.html?page=1 二.攻击环境准备 需要一台linux云服务器,把 ...
- ceph 因权重问题导致pgs active+clean+remapped 状态
1.现象: 2.原因:是因为前期权重调整不合理导致,调整回来就正常了 3.操作步骤: ceph osd crush reweight osd.2 0.98317 # osd 位置. 权重值 权重 ...
- 配置Nginx 反向代理 + go在windows 环境下编译运行在linux的文件
在源码根目录下 创建build.bat: set GOOS=linux set GOARCH=amd64 go build -o build/myweb main.go 在终端执行: ./build. ...
- 基础篇:windows常用命令
1. windows常用系统命令 cd [进入目录] dir [列出当前目录文件] echo + 打印内容 [打印命令] echo 123 > 1.txt [打印内容到文本] type + 文件 ...
- Vue二级联动上传图片
二级联动的后台和之前一样都需要一个字典字段查询来实现二级联动 但是由于VUE语法和AJAX的不同在前台绑定的时候也有所不同 2.1 首先下拉框的写法就有了本质的改变通过v-model="&q ...
- 基于Dijkstra算法的郑州地铁路径规划
需要引入geopy库 pip install geopy 安装即可 import requests from bs4 import BeautifulSoup import pandas as pd ...
- PASS模型小程序设计阶段-里程碑第三组
班级网址 https://edu.cnblogs.com/campus/zjcsxy/SE2020 作业要求 https://edu.cnblogs.com/campus/zjcsxy/SE2020/ ...