• mybatis-plus条件构造器QueryWrapper实例


    我们再搞几个实例来深入理解下条件构造器QueryWrapper的用法:

    案例一:

    查询姓李的,并且出生日期范围是1993-02-09到1994-04-09的员工

    sql实现:

    SELECT * FROM t_employee WHERE DATE_FORMAT(birthday,'%Y-%m-%d')>='1993-02-09' AND DATE_FORMAT(birthday,'%Y-%m-%d')<='1994-04-09' AND NAME LIKE '李%'

    mp实现:

    /**
     * 查询姓李的,并且出生日期范围是1993-02-09到1994-04-09的员工
     * sql:SELECT * FROM t_employee WHERE DATE_FORMAT(birthday,'%Y-%m-%d')>='1993-02-09' AND DATE_FORMAT(birthday,'%Y-%m-%d')<='1994-04-09' AND NAME LIKE '李%'
     */
    @Test
    public void selectByQueryWrapper3(){
      QueryWrapper<Employee> queryWrapper=new QueryWrapper();
      // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query();
      queryWrapper.apply("DATE_FORMAT(birthday,'%Y-%m-%d')>={0} and DATE_FORMAT(birthday,'%Y-%m-%d')<={1}","1993-02-09","1994-04-09").likeRight("name","");
      List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
      System.out.println(employeeList);
    }

    案例二:

    查询姓李的或者邮箱不为空并且是女性的员工

    sql实现:

    SELECT * FROM t_employee WHERE NAME LIKE '李%' OR (email IS NOT NULL AND gender ='')

    mp实现:

    /**
     * 查询姓李的或者邮箱不为空并且是女性的员工
     * sql:SELECT * FROM t_employee WHERE NAME LIKE '李%' OR (email IS NOT NULL AND gender ='女')
     */
    @Test
    public void selectByQueryWrapper4(){
      QueryWrapper<Employee> queryWrapper=new QueryWrapper();
      // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query();
      queryWrapper.likeRight("name","").or(wq->wq.isNotNull("email").eq("gender",""));
      List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
      System.out.println(employeeList);
    }

    案例三:

    查询姓李的并且邮箱不为空或者是女性的员工

    sql实现: 

    SELECT * FROM t_employee WHERE NAME LIKE '李%' AND (email IS NOT NULL OR gender ='')

    mp实现:

    /**
     * 查询姓李的并且邮箱不为空或者是女性的员工
     * sql:SELECT * FROM t_employee WHERE NAME LIKE '李%' AND (email IS NOT NULL OR gender ='女')
     */
    @Test
    public void selectByQueryWrapper5(){
      QueryWrapper<Employee> queryWrapper=new QueryWrapper();
      // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query();
      queryWrapper.likeRight("name","").and(wq->wq.isNotNull("email").or().eq("gender",""));
      List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
      System.out.println(employeeList);
    }

    案例四:

    查询属于编号1,2,3部门的并且薪水小于等于3500的员工 根据年龄从大到小排序显示

    sql实现:

    SELECT * FROM t_employee WHERE salary<=3500 AND departmentId IN (1,2,3) ORDER BY birthday ASC

    mp实现:

    /**
     * 查询属于编号1,2,3部门的并且薪水小于等于3500的员工 根据年龄从大到小排序显示
     * sql:SELECT * FROM t_employee WHERE salary<=3500 AND departmentId IN (1,2,3) ORDER BY birthday ASC
     */
    @Test
    public void selectByQueryWrapper6(){
      QueryWrapper<Employee> queryWrapper=new QueryWrapper();
      // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query();
      queryWrapper.likeRight("name","").and(wq->wq.isNotNull("email").or().eq("gender",""));
      List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
      System.out.println(employeeList);
    }

    ------------------------------------------------------------------------------------------------------------------------------

    作者: java1234_小锋

    出处:https://www.cnblogs.com/java688/p/13563976.html

    版权:本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。

    ------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    三层架构补充
    复习三层架构
    复习DOM、JQuery
    复习HTML CSS JavaScript
    Git在新电脑拉github 上的项目
    超全的IE兼容性问题及解决方案
    JS操作iframe
    attachEvent和addEventListener
    HTTP 方法:GET 对比 POST
    原生JS+ CSS3创建loading加载动画;
  • 原文地址:https://www.cnblogs.com/java688/p/13563976.html
Copyright © 2020-2023  润新知