• MybatisPlus使用Wrapper实现查询功能


    Wrapper---条件查询器

      :使用它可以实现很多复杂的查询

     

    几个案例

     

     环境:

      参照博客MybatisPlus入门程序

     

    1.条件查询

    1.1 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12的用户

    //查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12
     @Test
     void selectBy01(){
     ​
         QueryWrapper<User> wrapper=new QueryWrapper<>();
         wrapper
                 .isNotNull("name") //name不为空的用户
                 .isNotNull("email") //邮箱不为空的用户
                 .ge("age",12); //年龄大于等于12
     ​
         userMapper.selectList(wrapper).forEach(System.out::println);
     }

    结果

     

     

    1.2 查询 name"Jone" 的用户

    //查询name为 "Jone" 的用户
     @Test
     void selectBy02(){
     ​
         QueryWrapper<User> wrapper=new QueryWrapper<>();
         wrapper.eq("name","Jone"); //name为 "Jone" 的用户
    //查询一个数据,为多个用 selectList 或者 selectByMap
         User user = userMapper.selectOne(wrapper);
     ​
         System.out.println(user);
     }

    结果

     

    1.3 查询 10 到 20 岁的用户数

     //查询 10 到 20 岁的用户数
     @Test
     void selectBy03(){
         QueryWrapper<User> wrapper=new QueryWrapper<>();
         wrapper.between("age",10,20);
     ​
         Integer count = userMapper.selectCount(wrapper);
         //查询 10 到 20 岁的用户的结果数
     ​
         System.out.println(count);
     }

    结果

     

     

    2.模糊查询

    2.1 使用 like + notLike + likeRight

     @Test
     void selectLike01(){
         QueryWrapper<User> wrapper=new QueryWrapper<>();
         wrapper
                 .notLike("name","To") //名字不包含 To
                 .like("name","o") //名字包含 o 的
                 //左和右 左:%e   右:e%  两边:%e%
                 //右查询
                 .likeRight("email","test");
     ​
         List<Map<String, Object>> users = userMapper.selectMaps(wrapper);
         users.forEach(System.out::println);
     }

    结果

     

    2.2 子查询

     @Test
     void selectLike02(){
         QueryWrapper<User> wrapper=new QueryWrapper<>();
         wrapper
                 //一个SQL语句写的子查询
                 .inSql("id","select id from user where age<20");
     ​
         List<Object> users = userMapper.selectObjs(wrapper);
         users.forEach(System.out::println);
     }

    结果

     

    2.3 降序排序

    @Test
     void selectLike03(){
         QueryWrapper<User> wrapper=new QueryWrapper<>();
         //降序排序
         wrapper.orderByDesc("id");
         //升序排序
         //wrapper.orderByAsc("id");
     ​
         List<User> users = userMapper.selectList(wrapper);
         users.forEach(System.out::println);
     }

    结果

     

  • 相关阅读:
    bzoj 1084: [SCOI2005]最大子矩阵
    Python之深浅拷贝
    2,版本控制git --分支
    1,版本控制git--仓库管理
    python-openpyxl操作excel
    ansible-3
    ansible-2
    ansible-1
    celery
    6,MongoDB 之 Array Object 的特殊操作
  • 原文地址:https://www.cnblogs.com/kzyuan/p/12706600.html
Copyright © 2020-2023  润新知