首页 > 编程语言 >MybatisPlus入门(七)MybatisPlus-DQL编程控制(上)

MybatisPlus入门(七)MybatisPlus-DQL编程控制(上)

时间:2024-11-24 14:33:02浏览次数:5  
标签:QueryWrapper lqw MybatisPlus 编程 查询 userList User DQL new

 


一、查询条件设置
查询条件如下图:

 

 

用户登录(eq匹配),代码示例:

LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//等同于=
lqw.eq(User::getName, "Jerry").eq(User::getPassword, "jerry");
User loginUser = userDao.selectOne(lqw);
System.out.println(loginUser);

 


购物设定价格区间、户籍设定年龄区间(le ge匹配 或 between匹配)

代码示例:

LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//范围查询 lt le gt ge eq between  
//范围查询 lt le  (不带等号 ) gt ge(带等号)  eq  between  
lqw.between(User::getAge, 10, 30);
List<User> userList = userDao.selectList(lqw);
System.out.println(userList);

 


注意:范围查询 lt le (不带等号 ) gt ge(带等号) eq between

模糊匹配 ,查信息,搜索新闻(非全文检索版:like匹配)代码示例:

LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//模糊匹配 like likeRight  likeLeft
lqw.likeLeft(User::getName, "J");
List<User> userList = userDao.selectList(lqw);
System.out.println(userList);

 


统计报表(分组查询聚合函数),代码示例:

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

 

二、查询投影

查询投影:查出来的东西有多少字段,设置查询出来的结果长什么样,查出的字段控制;


查询投影适用于lamda格式,使用select 查询 lqw.select(User::getId,User::getName,User::getAge);

代码示例:

        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> userList = userDao.selectList(lqw);
        System.out.println(userList);

 


普通查询查询投影,代码示例:

QueryWrapper<User> lqw = new QueryWrapper<User>();
lqw.select("id", "name", "age", "tel");
List<User> userList = userDao.selectList(lqw);
System.out.println(userList);

 


查询 count (*)使用List<Map<String, Object>> userList = userDao.selectMaps(lqw);

查询投影和分组代码示例:

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);

 


查询结果包含模型类中部分属性,代码示例:

/*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> userList = userDao.selectList(lqw);
System.out.println(userList);

 


查询结果包含模型类中未定义的属性,代码示例:

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);

 

标签:QueryWrapper,lqw,MybatisPlus,编程,查询,userList,User,DQL,new
From: https://www.cnblogs.com/kongsq/p/18565795

相关文章

  • Python编程整理汇总(基础汇总版)
    1.基础语法1.1变量与数据类型整数:a=10浮点数:b=3.14字符串:c="Hello,World!"布尔值:d=True列表:e=[1,2,3,4,5]元组:f=(1,2,3)字典:g={"name":"Alice","age":25}集合:h={1,2,3,4,5}1.2控制结构if语句:ifa>......
  • MybatisPlus入门(五)MybatisPlus条件查询
    一、MybatisPlus条件查询MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合  方式一:按条件查询查询年龄小于18的用户,代码示例:@SpringBootTestclassMybatisplusDqlApplicationTests{@AutowiredprivateUserDaouserDao;......
  • MybatisPlus入门(六)MybatisPlus-空值处理
    一、MybatisPlus-空值处理1.1)问题引入:在查询中遇到如下情况,有部分筛选条件没有值,如商品价格有最大值和最小值,商品价格部分时候没有值。  1.2)解决办法:步骤一:新建查询实体类UserQuery继承自Userpackagecom.it.domain.query;importcom.it.domain.User;importlombok.Da......
  • 【轻量级 Java Web 整合开发(第 2 版)-框架编程技术】-期末复习(第二版)
    第一章JavaWeb技术概述作业1、完成课后(P28)选择题和问答题(只需完成,不需要提交)2、Tomcat的目录结构及其用途?bin:启动/关闭应用服务器的bat批处理命令;conf:包含不同的配置文件。包括server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件we......
  • C语言嵌入式编程实战指南(二):高级技术和最佳实践
    引言在前一篇指南中,我们介绍了嵌入式系统的基础知识、C语言编程以及简单的项目开发流程。本篇将继续深入探讨高级技术主题,包括但不限于多任务编程、网络通信、硬件抽象层(HAL)的使用,以及一些实用的最佳实践建议。第一部分:高级编程技术1.1实时操作系统(RTOS)与多任务管......
  • 36. UDP网络编程
    一、什么是UDP协议  相对于TCP协议,UDP协议则是面向无连接的协议。使用UDP协议时,不需要建立连接,只需要知道对象的IP地址和端口号,就可以直接发数据包。但是,数据无法保证一定到达。虽然用UDP传输数据不可靠,但它的优点是比TCP协议的速度快。对于不要求可靠到达的数据而......
  • 【前端知识】JS实现异步编程
    JS异步编程一、JS异步编程的背景和重要性二、JS异步编程的实现方式三、JS异步编程的示例四、JS异步编程中的错误处理五、JS异步编程的优势JS异步编程是一种编程范式,它允许程序在等待某些操作完成(如I/O操作、网络请求等)时,不必阻塞当前执行线程,而是可以继续执行其他任......
  • shell编程(2)(3)
    目录一、永久环境变量按用户设置永久环境变量文件路径:示例步骤:删除永久环境变量二、脚本程序传递参数怎么实现三、用编程进行数学运算shell中利用expr进行运算运算与变量结合1.变量赋值和基本运算2.使用expr进行运算3.变量拼接4.条件判断结合变量声明:学习......
  • Linux 网络编程之UDP套接字
    前言前面我们对网络的发展,网络的协议、网路传输的流程做了介绍,最后,我们还介绍了IP和端口号,ip +port叫做 套接字socket,本期我们就来介绍UDP套接字编程!目录1、预备知识1.1传输层协议:TCP/UDP1.2网络字节序1.3socket接口1.4sockaddr2、echo_server2.1核......
  • 代码的未来:AI编程工具是否正在重塑技术叙事?
    近年来,AI编程工具的快速发展正逐渐改变编程的方式、技术的普及以及开发者与代码的关系。这不仅是一场技术革命,更是一场叙事重构。曾经,编程被视为一种掌控技术的核心能力,而今天的AI工具让这种掌控变得更加普及,甚至可能将部分人类开发者“边缘化”。在这一背景下,本文结合AI编程工......