zoukankan      html  css  js  c++  java
  • 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);
     }

    结果

     

  • 相关阅读:
    JS正则表达式验证账号、手机号、电话和邮箱
    Asp.Net Mvc导出Excel
    后台截取姓名,只留姓名字带*号覆盖
    后台根据身份证号码截取性别和出生日期
    后台传个变量,前台页面显示对应的中文
    第一次封装JS文件之滚动条
    阿里巴巴17校招测试题目(Jquery解法)
    阿里巴巴17实习生招聘编程题目(JavaScript解法)
    SofewareTesting hw3
    PHP之login
  • 原文地址:https://www.cnblogs.com/kzyuan/p/12706600.html
Copyright © 2011-2022 走看看