首页 > 其他分享 >MybatisPlus入门(六)MybatisPlus-空值处理

MybatisPlus入门(六)MybatisPlus-空值处理

时间:2024-11-24 14:22:00浏览次数:8  
标签:UserQuery getAge MybatisPlus 入门 lqw uq 空值 User

一、MybatisPlus-空值处理
1.1)问题引入:
在查询中遇到如下情况,有部分筛选条件没有值,如商品价格有最大值和最小值,商品价格部分时候没有值。

 

 

1.2)解决办法:

步骤一:新建查询实体类UserQuery继承自User

package com.it.domain.query;
 
import com.it.domain.User;
import lombok.Data;
 
@Data
public class UserQuery extends User {
    private Integer age2;
}

 


步骤二:

方式一)条件参数控制,代码如下:

        
        //模拟页面传递过来的查询数据
        UserQuery uq = new UserQuery();
        uq.setAge(10);
        uq.setAge2(30);
 
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
        //先判定第一个参数是否为true,如果为true连接当前条件
        lqw.lt(null != uq.getAge2(),User::getAge, uq.getAge2());
        lqw.gt(null != uq.getAge(),User::getAge, uq.getAge());
 
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);

 



方式二)if语句控制条件追加,代码如下:

 
 
        //模拟页面传递过来的查询数据
        UserQuery uq = new UserQuery();
        uq.setAge(10);
        uq.setAge2(30);
 
        //null判定
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
        lqw.lt(User::getAge, uq.getAge2());
        if( null != uq.getAge()) {
            lqw.gt(User::getAge, uq.getAge());
        }
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);
    

 



成功处理null值。

标签:UserQuery,getAge,MybatisPlus,入门,lqw,uq,空值,User
From: https://www.cnblogs.com/kongsq/p/18565783

相关文章

  • MyBatis入门——基本的增删改查
    目录一、MyBatis简介二、搭建MyBatis(一)配置依赖(二)log4j日志功能(三)数据库配置文件——jdbc.properties(四)创建MyBatis的核心配置文件(五)使用MyBatisX插件三、项目其他配置搭建(一)创建数据库连接工具类(二)创建表(三)创建数据库的实体类(四)UserMapper接口......
  • WebSocket入门到精通,就差这一篇了
    目录一、概述二、对比Http(介绍特点)1.通信模式对比2.连接机制3.数据传输效率4.实时性5.使用场景三、websocket通信原理1、建立连接连接1.客户端发起HTTP请求2.服务器处理请求并响应3.升级到WebSocket协议4.双向通信2、通信内容(websocket帧)1.Heade......
  • RabbitMQ 入门(七)SpringAMQP五种消息类型(Direct Exchange)
    一、发布订阅-DirectExchange(路由模式)在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。DirectExchange会将接收到的消息根据规则路由到指定queue,因此称为路由模式(r......
  • RabbitMQ 入门(四)SpringAMQP五种消息类型(Basic Queue)
    一、SpringAMQP简介SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。SpringAmqp的官方地址:https://spring.io/projects/spring-amqpSpringAMQP提供了三个功能:-自动声明队列、交换机及其绑定关系-基于注解的......
  • RabbitMQ 入门(五)SpringAMQP五种消息类型(Work Queue)
    一、WorkQueue(工作消息队列)Workqueues,也被称为(Taskqueues),任务模型。简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息。当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时处理。此时就可以......
  • Ollydbg的入门使用
    修改完一个文件之后,点击保存到可执行文件就可以保存。 1.各窗口简单介绍B:即Breakpointswindow,断点窗口,用来管理和查看用户的断点。L:logwindow,日志窗口,用来显示程序的输入输出和一些断点之类的日志信息E:Executablemoduleswindow,也就是可执行模块窗口,列出当前进程......
  • jvm入门
    jvm入门一:jvm的介绍定义jvm的全称是Javavirtualmachine(java虚拟机)-java的运行环境(java二进制字节码的运行环境)作用:1:wirteonce,runanywhere。一次编译可以在任意平台运行2:自动内存管理:垃圾回收机制3:数组下标越界检查(对比c)4:多太jvm,jre,jdk的关系:jdk包......
  • 【数据库入门】关系型数据库入门及SQL语句的编写
    1.数据库的类型:数据库分为网状数据库,层次数据库,关系型数据库和非关系型数据库四种。目前市场上比较主流的是:关系型数据库和非关系型数据库。关系型数据库使用结构化查询语句(SQL)对关系型数据库进行操作。2.关系型数据库数据以二维表的形式进行存储,表和表之间可以建立关......
  • MySQL入门学习(五)
      在本篇文章中,我们会将MySQL剩余的基础知识讲解完毕,这也就是我们MySQL专栏里的收官之作辣~~~事务  在MySQL当中,什么叫做事务呢?一个事务其实就是一个完整的业务逻辑,可以举个生活中常见的例子:  假设A要向B转账1000元,那么我们需要在数据库中做以下几个步骤:①将A账户......
  • 密码学入门总结&古典密码&现代密码学&RSA入门原理
    密码学入门总结&古典密码&现代密码学&RSA入门原理文章目录密码学入门总结&古典密码&现代密码学&RSA入门原理前言一、古典密码1.单表替换密码1.1凯撒密码1.2Atbash密码1.3摩斯密码1.4仿射密码2.多表替换密码2.1维吉尼亚密码2.2自动密钥密码3.其他类型密码3.1栅栏密......