zoukankan      html  css  js  c++  java
  • 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」创作共享协议,转载请在文章明显位置注明作者及出处。

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

  • 相关阅读:
    范仁义js课程---26、循环结构(while循环)
    解决Failed to parse SourceMap: http:xxx 问题
    范仁义js课程---25、switch选择结构
    范仁义js课程---24、条件运算符
    范仁义js课程---23、if选择结构小实例
    范仁义js课程---22、选择结构(if)
    javascript疑难问题---4、NaN的相等性判断
    范仁义js课程---21、js运算符优先级
    android L新控件RecyclerView详解与DeMo[转]
    Color Cube – 国产的优秀配色取色工具
  • 原文地址:https://www.cnblogs.com/java688/p/13563976.html
Copyright © 2011-2022 走看看