• MyBatisPlus-02


    一 查询条件的三种

    1.按条件查询

    1. //方式一:按条件查询
    2. QueryWrapper qw = new QueryWrapper();
    3. qw.lt("age",18);
    4. List userList = userDao.selectList(qw);
    5. System.out.println(userList);

    2.lambda格式按条件查询

    1. //方式二:lambda格式按条件查询
    2. QueryWrapper qw = new QueryWrapper();
    3. qw.lambda().lt(User::getAge, 10);
    4. List userList = userDao.selectList(qw);
    5. System.out.println(userList);

    3.lambda格式按条件查询2

    1. //方式三:lambda格式按条件查询
    2. LambdaQueryWrapper lqw = new LambdaQueryWrapper();
    3. lqw.lt(User::getAge, 10);
    4. List userList = userDao.selectList(lqw);
    5. System.out.println(userList);

    二.并且与或者的关系

    1. LambdaQueryWrapper lqw = new LambdaQueryWrapper();
    2. //并且关系:10到30岁之间
    3. //lqw.lt(User::getAge, 30).gt(User::getAge, 10);
    4. //或者关系:小于10岁或者大于30岁
    5. lqw.lt(User::getAge, 10).or().gt(User::getAge, 30);
    6. List userList = userDao.selectList(lqw);
    7. System.out.println(userList);

    三 null值的处理

    在进行条件查询时,如果条件封闭不彻底则会出现null值。

    初始:新建一个query包下的query类,继承要添加上下限的实体类,内部属性:年龄,薪资等有范围的数据。

    1. @Data
    2. public class UserQuery extends User {
    3. private Integer age2;
    4. }

    1.if语句控制

    1. //模拟页面传递过来的查询数据
    2. UserQuery uq = new UserQuery();
    3. uq.setAge(10);
    4. uq.setAge2(30);
    5. //null判定
    6. LambdaQueryWrapper lqw = new LambdaQueryWrapper();
    7. lqw.lt(User::getAge, uq.getAge2());
    8. if( null != uq.getAge()) {
    9. lqw.gt(User::getAge, uq.getAge());
    10. }
    11. List userList = userDao.selectList(lqw);
    12. System.out.println(userList);

    2.Lambda处理

    1. LambdaQueryWrapper lqw = new LambdaQueryWrapper();
    2. //先判定第一个参数是否为true,如果为true连接当前条件
    3. // lqw.lt(null != uq.getAge2(),User::getAge, uq.getAge2());
    4. // lqw.gt(null != uq.getAge(),User::getAge, uq.getAge());
    5. lqw.lt(null != uq.getAge2(),User::getAge, uq.getAge2())
    6. .gt(null != uq.getAge(),User::getAge, uq.getAge());
    7. List userList = userDao.selectList(lqw);
    8. System.out.println(userList);

    四 查询投影

    QueryWrapper适用于可以查询自定义字段的,有些如果不支持,则在dom层下的Mapper进行写入

    1. QueryWrapper lqw = new QueryWrapper();
    2. lqw.select("count(*) as count, tel");
    3. lqw.groupBy("tel");
    4. List> userList = userDao.selectMaps(lqw);
    5. System.out.println(userList);

    五 条件查询

    1. //条件查询
    2. LambdaQueryWrapper lqw = new LambdaQueryWrapper();
    3. //等同于=
    4. lqw.eq(User::getName,"Jerry").eq(User::getPassword,"jerry");
    5. User loginUser = userDao.selectOne(lqw);
    6. System.out.println(loginUser);

    六 范围查询

    1. LambdaQueryWrapper lqw = new LambdaQueryWrapper();
    2. // //范围查询 lt le gt ge eq between
    3. lqw.between(User::getAge,10,30);
    4. List userList = userDao.selectList(lqw);
    5. System.out.println(userList);

    七 模糊查询

    1. LambdaQueryWrapper lqw = new LambdaQueryWrapper();
    2. // //模糊匹配 like,其中likeleft,likeright中的left和right是%匹配符的位置
    3. lqw.likeLeft(User::getName,"J");
    4. List userList = userDao.selectList(lqw);
    5. System.out.println(userList);

    更多查询条件设置参看  https://mybatis.plus/guide/wrapper.html#abstractwrapper

  • 相关阅读:
    软件测试计划与测试方案
    C# SolidWorks二次开发---工程图中心标记(Center Marks)
    C++设计模式02-——策略设计模式
    芯天下在创业板过会:预计全年收入将达到10亿元,净利润约2亿元
    初学python自动化测试(1)-元素定位
    nginx + tomcat 搭建负载均衡、动静分离(tomcat多实例)
    智慧交通与车载数据的聚合路由器通信方案
    22-08-01 西安 尚医通(01)跨域配置、Swagger2、R类、统一异常处理和自定义异常、Logback日志
    软件测试/测试开发丨ChatGPT:带你进入智能对话的新时代
    html笔记__表格标签
  • 原文地址:https://blog.csdn.net/m0_61395860/article/details/133885557