首页 > 编程语言 >Java开发学习(四十四)----MyBatisPlus查询语句之查询条件

Java开发学习(四十四)----MyBatisPlus查询语句之查询条件

时间:2022-11-27 17:57:26浏览次数:45  
标签:LambdaQueryWrapper Java lqw 查询 ---- 升序 userDao 排序

1、查询条件

前面我们只使用了lt()和gt(),除了这两个方法外,MybatisPlus还封装了很多条件对应的方法。

MybatisPlus的查询条件有很多:

  • 范围匹配(> 、 = 、between)

  • 模糊匹配(like)

  • 空判定(null)

  • 包含性匹配(in)

  • 分组(group)

  • 排序(order)

  • ……

1.1 等值查询

需求:根据用户名和密码查询用户信息

@SpringBootTest
class Mybatisplus02DqlApplicationTests {
​
    @Autowired
    private UserDao userDao;
    
    @Test
    void testGetAll(){
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
        lqw.eq(User::getName, "Jerry").eq(User::getPassword, "jerry");
        User loginUser = userDao.selectOne(lqw);
        System.out.println(loginUser);
    }
}
  • eq(): 相当于 =,对应的sql语句为

    SELECT id,name,password,age,tel FROM user WHERE (name = ? AND password = ?)
  • selectList:查询结果为多个或者单个

  • selectOne:查询结果为单个

1.2 范围查询

需求:对年龄进行范围查询,使用lt()、le()、gt()、ge()、between()进行范围查询

@SpringBootTest
class Mybatisplus02DqlApplicationTests {
​
    @Autowired
    private UserDao userDao;
    
    @Test
    void testGetAll(){
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
        lqw.between(User::getAge, 10, 30);
        //SELECT id,name,password,age,tel FROM user WHERE (age BETWEEN ? AND ?)
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);
    }
}
  • gt():大于(>)

  • ge():大于等于(>=)

  • lt():小于(<)

  • lte():小于等于(<=)

  • between():between ? and ?

1.3 模糊查询

需求:查询表中name属性的值以J开头的用户信息,使用like进行模糊查询

@SpringBootTest
class Mybatisplus02DqlApplicationTests {
​
    @Autowired
    private UserDao userDao;
    
    @Test
    void testGetAll(){
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
        lqw.likeLeft(User::getName, "J");
        //SELECT id,name,password,age,tel FROM user WHERE (name LIKE ?)
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);
    }
}
  • like():前后加百分号,如 %J%

  • likeLeft():前面加百分号,如 %J

  • likeRight():后面加百分号,如 J%

1.4 排序查询

需求:查询所有数据,然后按照id降序

@SpringBootTest
class Mybatisplus02DqlApplicationTests {
​
    @Autowired
    private UserDao userDao;
    
    @Test
    void testGetAll(){
        LambdaQueryWrapper<User> lwq = new LambdaQueryWrapper<>();
        /**
         * condition :条件,返回boolean,
                当condition为true,进行排序,如果为false,则不排序
         * isAsc:是否为升序,true为升序,false为降序
         * columns:需要操作的列
         */
        lwq.orderBy(true,false, User::getId);
​
        userDao.selectList(lw
    }
}

除了上面演示的这种实现方式,还有很多其他的排序方法可以被调用,如图:

  • orderBy排序

    • condition:条件,true则添加排序,false则不添加排序

    • isAsc:是否为升序,true升序,false降序

    • columns:排序字段,可以有多个

  • orderByAsc/Desc(单个column):按照指定字段进行升序/降序

  • orderByAsc/Desc(多个column):按照多个字段进行升序/降序

  • orderByAsc/Desc

    • condition:条件,true添加排序,false不添加排序

    • 多个columns:按照多个字段进行排序

除了上面介绍的这几种查询条件构建方法以外还会有很多其他的方法,比如isNull,isNotNull,in,notIn等等方法可供选择,具体参考官方文档的条件构造器来学习使用.

 

 

标签:LambdaQueryWrapper,Java,lqw,查询,----,升序,userDao,排序
From: https://www.cnblogs.com/xiaoyh/p/16468197.html

相关文章

  • 将shell切换为TTY
    pythonpython-c'importpty;pty.spawn("/bin/bash")'#python2python3-c'importpty;pty.spawn("/bin/bash")'#python3stty获取到shell后,先Ctrl+z放到后台......
  • MySQL数据库基础
    一、数据库的基本概念数据(Data):描述事务的符号记录包括数字、文字、图形、图像、声音、档案记录以”记录“形式按统一的格式进行存储表:将不同的记录组织在一起用......
  • NOIP2022 游记
    无所谓失败可言,等待你是明天。Day2022.11.27Day2022.11.25写过一篇总结应该算是,没来得及发出,Siteishere。Day2022.11.26NOIP2022如约而至8:30开考,T1plant30......
  • leetcode 56. 合并区间 js实现
    以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i]=[starti,endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入......
  • windows下安装redis
    1.安装包安装1)下载安装包下载地址:https://github.com/rgl/redis/downloads,选择msi后缀的文件下载。2)安装打开下载好的安装包,按提示步骤一路安......
  • Java基础_Spring三种构造方法
    第一种构造方法接口:FirstDaopackagecom.leehl.springgitider.dao;publicinterfaceFirstDao{publicvoidsave();}主方法:FirstDaoimplpacka......
  • 100019 求三角形斜边对边已知角A邻边角度
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='求三角形斜边对......
  • P8867 [noip2022]建造军营 题解
    题意:给定一张图,选择一些点和一些边,使得割断任意没有选的边,被选中的点仍连通。对\(10^9+7\)取膜。\(n\leq5\cdot10^5\)这篇题解会略讲缩边,详讲自己推dp状态与......
  • rabbitMQ--基本概念
    MQ的概念优点:1.应用解耦,提升系统容错性和可维护性 图中,假如不加入MQ,如果库存系统宕机,则会导致订单系统宕机,从而导致整个分布式宕机。 2.异步提速,提高系统的吞吐......
  • TCP三次握手和四次挥手
    TCP在网络模型的第二层传输层保证可靠传输。TCP的三次握手:在最开始的时候客户端的状态是CLOSED服务器也是CLOSED第一次握手:客户端向服务器发送请求:SYN=1;客户端的状......