Mybatis-Plus分页与条件查询

news2024/11/28 16:07:38

目录

标准分页功能制作

条件查询

条件查询-null值处理


  • 标准分页功能制作

  • 1:设置分页拦截器作为Spring管理的bean
  • @Configuration
    public class MpConfig {
        @Bean
        public MybatisPlusInterceptor mpInterceptor(){
            //1.定义MP拦截器
            MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
            //2.添加具体的拦截器
            mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
            return mpInterceptor;
        }
    }
  • 2:执行分页查询
  • @Test
        void testGetByPage(){
            IPage page = new Page(1,2);
            personDao.selectPage(page,null);
            System.out.println("当前页码值:"+page.getCurrent());
            System.out.println("每页显示数:"+page.getSize());
            System.out.println("一共多少页:"+page.getPages());
            System.out.println("一共多少条数据:"+page.getTotal());
            System.out.println("数据:"+page.getRecords());
        }
  • 3:开启日志
  • # 开启mp的日志(输出到控制台)
    mybatis-plus:
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  • 条件查询

  • 去掉多余日志方法
  • <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    </configuration>
  •   global-config:
        banner: false
  •   main:
        banner-mode: off
  • 条件查询-设置查询条件
  • 格式一:常规格式
  • 格式二:链式编程格式
  • 格式三:lambda格式(推荐)
  • 条件查询-组合查询条件
  • 并且(and)
  • 或者(or)
  • @Test
        void testGetAll1(){
            //方式一:按条件查询
            //QueryWrapper qw = new QueryWrapper();
            //qw.lt("age",15);
            //List<Person> personList = personDao.selectList(qw);
            //System.out.println(personList);
    
            //方式二:Lambda格式按条件查询
            //QueryWrapper<Person> qw = new QueryWrapper<Person>();
            //qw.lambda().lt(Person::getAge,17);
            //List<Person> personList = personDao.selectList(qw);
            //System.out.println(personList);
    
            //方式三:Lambda格式按条件查询
            //LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
            //lqw.lt(Person::getAge,17);
            //List<Person> personList = personDao.selectList(lqw);
            //System.out.println(personList);
    
            //LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
            //lqw.lt(Person::getAge,18);
            //lqw.gt(Person::getAge,15);
            //List<Person> personList = personDao.selectList(lqw);
            //System.out.println(personList);
    
            LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
            //15至18岁之间
            //lqw.lt(Person::getAge,18).gt(Person::getAge,15);
            //大于18岁或者小于15岁
            lqw.lt(Person::getAge,15).or().gt(Person::getAge,18);
            List<Person> personList = personDao.selectList(lqw);
            System.out.println(personList);
        }
  • 条件查询-null值处理

  • 存在问题
  • if语句控制条件追加
  • LambdaQueryWrapper lqw = new LambdaQueryWrapper<User>();
  • if(null != userQuery.getAge()){
    • lqw.ge(User::getAge, userQuery.getAge());
  • }
  • if(null != userQuery.getAge2()){
    • lqw.lt(User::getAge, userQuery.getAge2());
  • }
  • List<User> userList = userDao.selectList(lqw);
  • System.out.println(userList);
  • 条件参数控制
  • LambdaQueryWrapper lqw = new LambdaQueryWrapper<User>();
    • lqw.ge(null != userQuery.getAge(),User::getAge,userQuery.getAge());
    • lqw.lt(null != userQuery.getAge2(),User::getAge, userQuery.getAge2());
  • List<User> userList = userDao.selectList(lqw);
  • System.out.println(userList);
  • 条件参数控制(链式编程)
  • LambdaQueryWrapper lqw = new LambdaQueryWrapper<User>();
  • lqw.ge(null != userQuery.getAge(),User::getAge,userQuery.getAge())
    • .lt(null != userQuery.getAge2(),User::getAge, userQuery.getAge2());
  • List<User> userList = userDao.selectList(lqw);
  • System.out.println(userList);
  • //模拟页面传递过来的查询数据
    PersonQuery uq = new PersonQuery();
    //uq.setAge("10");
    uq.setAge2(15);
    
    //null判定
    LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
    //lqw.lt(Person::getAge,uq.getAge2());
    //if(null != uq.getAge()){
    //    lqw.gt(Person::getAge,uq.getAge());
    //}
    
    //先判定第一个参数是否为true,如果为true连接当前条件
    //lqw.lt(null != uq.getAge2(),Person::getAge,uq.getAge2());
    //lqw.gt(null != uq.getAge(),Person::getAge,uq.getAge());
    lqw.lt(null != uq.getAge2(),Person::getAge,uq.getAge2())
       .gt(null != uq.getAge(),Person::getAge,uq.getAge());
    List<Person> personList = personDao.selectList(lqw);
    System.out.println(personList);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/126412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python中使用的流行数据科学库

Python中使用的流行数据科学库 数据科学是用于采购、组织、打包和以可理解的格式呈现数据的程序和方法。在不同的领域可能有不同种类的数据&#xff0c;这些数据可能是结构化的&#xff0c;也可能是非结构化的。 为什么Python在人们开始他们的编码之旅时如此受欢迎&#xff1…

删除数组中符合指定条件的元素

不符合指定条件&#xff0c;可能是指定数组array中的某一项不符合某一值的要求&#xff1b;或者是拿另一个数组arr对比&#xff0c;要求array只留下复合arr中的值或者删除掉复合arr中的值。 1.不符合某一值的要求 <!DOCTYPE html> <html lang"en"> <…

一篇文章轻松掌握java图实现

图的基本概念&#xff1a;这里就不予介绍了&#xff0c;这里主要是讲图的代码实现 荔枝目录&#xff1a;1.图的存储结构1.1邻接矩阵1.2邻接表2.图的遍历2.1广度优先2.2深度优先3.最小生成树3.1Kruskal算法&#xff08;全局&#xff09;3.2Prim算法&#xff08;局部&#xff09;…

[UE][UE5]在UE中画一个线框球,网格连接画球,高阶画球并操控

[UE][UE5]在UE中画一个线框球&#xff0c;网格连接画球&#xff0c;高阶画球并操控1.材质法2.绘制调试球体3.网格连接4.高阶画球并操控1.材质法 缺点&#xff1a;是实体的&#xff0c;只能欺骗视觉&#xff0c;实际还是一个实体体积球&#xff0c;往里放东西显示不出来放进去的…

Python中ArcPy基于矢量要素批量将栅格影像切割为多个小部分

本文介绍基于Python中ArcPy模块&#xff0c;基于具有多个面要素的要素类&#xff0c;批量分割大量栅格图像的方法。 首先明确一下我们的需求。现在需要基于一个面要素类&#xff0c;对一个栅格遥感影像加以分割&#xff1b;如下图所示。这个面要素类中有3个部分&#xff0c;我们…

MMdetection框架速成系列 第02部分:整体算法流程+模型搭建流程+detection训练与测试核心组件+训练部分与测试部分的核心算法

MMdetection框架速成系列 第02部分1 MMDetection是什么1.1 模型分类2. 整体算法流程3 detection训练核心组件3.1 Backbone3.2 Neck3.3 Head3.4 Enhance3.5 BBox Assigner3.9 BBox Sampler3.10 BBox Encoder3.11 Loss3.12 Training tricks4 detection测试核心组件4.1 BBox Decod…

python源码打包exe、exe反编译

一、python3打包为exe文件 这里有个hello.py文件 step1&#xff1a;安装pyinstaller包 pip install pyinstaller step2&#xff1a;在cmd中进入hello.py文件所在路径。可以直接在hello.py文件路径下直接进入cmd step3&#xff1a;打包生成exe文件&#xff0c;使用如下命令&…

Linux网络协议之IP协议(网络层)

Linux网络协议之IP协议(网络层) 文章目录Linux网络协议之IP协议(网络层)1.IP协议基本概念2.IPV4协议格式3.分片与组装4.IP网段划分4.1 IP地址组成4.2 IP地址分类4.3 特殊的IP地址4.4 IP地址的数量限制4.5 私网IP地址与公网IP地址5.对路由的了解1.IP协议基本概念 IP协议全称为“…

第四章 vi和vim 编辑器-[实操篇]

一&#xff1a;vi 和 vim 的基本介绍 所有的 Linux 系统都会内建vi文本编辑器。 Vim 具有程序编辑的能力&#xff0c;可以看做是 Vi的增强版本&#xff0c;可以主动的以字体颜色辨别语法的正确性&#xff0c;方便程序设计。代码补完&#xff0c;编译及错误跳转等方便编程的功…

Linux安装【入门学习适用】

Linux安装安装1、安装VMware激活码&#xff1a;ZF3R0-FHED2-M80TY-8QYGC-NPKYF2、安装CentOS3、FinalShell安装4、FinalShell的使用安装 1、安装VMware VMware-workstation-full-16.2.4无脑下一步即可 激活码&#xff1a;ZF3R0-FHED2-M80TY-8QYGC-NPKYF 2、安装CentOS 1、…

TensorFlow笔记之多元线性回归

文章目录前言一、数据处理二、TensorFlow1.x1.定义模型2.训练模型3.结果可视化4.模型预测5.TensorBoard可视化三、TensorFlow2.x1.定义模型2.训练模型3.结果可视化4.模型预测总结前言 记录使用TensorFlow1.x和TensorFlow2.x完成多元线性回归的过程。 一、数据处理 在此使用波…

dll修复工具哪个比较好?好的修复工具怎么选择

最近有小伙伴咨询小编&#xff0c;问dll修复工具的选择&#xff0c;因为他的电脑经常出现dll缺失&#xff0c;一缺失就打开不了各种软件程序&#xff0c;非常的让他烦恼&#xff0c;所以今天小编就来给大家详细的说说dll修复工具哪个比较好&#xff1f;要怎么去选择。 一.什么…

36 氪发布《研发项目管理软件应用指南》,ONES 入选典型厂商案例

近日&#xff0c;36氪企服点评发布了《研发项目管理软件应用指南》&#xff08;下称「指南」&#xff09;。36氪企服点评致力于帮助每个需求企业服务的人做出正确的决策&#xff0c;携手每个企服行业者为大众提供更高的价值与服务。在该指南中&#xff0c;36氪企服点评综合了海…

大数据系列——ClickHouse表引擎与分布式查询

目录 一、ClickHouse的表引擎 1、MergeTree的创建方式与存储结构 2、ReplacingMergeTree 二、数据分片与分布式查询 三、Clickhouse-ETL常见业务使用 一、ClickHouse的表引擎 表引擎体系&#xff0c;包括合并树、外部存储、内存、文件、接口和其他6大类20多种表引擎。而在…

全流量回溯分析为您解决应用性能问题(一)

前言 信息中心老师反应&#xff0c;用户反馈办公系统有访问慢的情况&#xff0c;需要通过流量分析系统来了解系统的运行情况&#xff0c;此报告专门针对系统的性能数据做了分析。 信息中心已部署NetInside流量分析系统&#xff0c;使用流量分析系统提供实时和历史原始流量&am…

【网络安全篇】浅谈web应用程序的安全风险

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;浅谈web应用程序的安全风险 ✅创作者&#xff1a;贤鱼 ⏰预计时间&#xff1a;25分钟 &#x1f389;个人主页&#xff1a;贤鱼的个人主页 &#x1f525;专栏系列&#xff1a;网络安全 &#x1f341;贤鱼的个人社区&#xf…

使用FastJson进行驼峰下划线相互转换写法及误区

PropertyNamingStrategy 有四种序列化方式。 CamelCase策略&#xff0c;Java对象属性&#xff1a;personId&#xff0c;序列化后属性&#xff1a;persionId – 实际只改了首字母 大写变小写 PascalCase策略&#xff0c;Java对象属性&#xff1a;personId&#xff0c;序列化后属…

说透IO多路复用模型

在说IO多路复用模型之前&#xff0c;我们先来大致了解下Linux文件系统。在Linux系统中&#xff0c;不论是你的鼠标&#xff0c;键盘&#xff0c;还是打印机&#xff0c;甚至于连接到本机的socket client端&#xff0c;都是以文件描述符的形式存在于系统中&#xff0c;诸如此类&…

springboot项目打war包 部署到Tomcat

1、SpringBoot项目Pom文件修改 <!-- 打war包配置 --><packaging>war</packaging><!-- 打war包配置 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>…

英美TOP名校对IB的申请要求汇总

英美TOP名校对IB的申请要求汇总 英国大学剑桥大学 IB要求 40-42分&#xff08;满分45&#xff09;&#xff0c;HL要求为776分。 学校可能要求申请者的某些科目成绩为7&#xff0c;视不同专业和学院而定。 对任何要求数学的专业&#xff0c;申请者需选Analysis and Approaches&a…