开发者

Mybatis-Plus查询投影与查询条件设置过程

开发者 https://www.devze.com 2025-11-05 11:06 出处:网络 作者: 兔子队列
目录查询投影查询指定字段聚合查询分组查询查询条件设置等值查询范围查询模糊查询排序查询总结查询投影
目录
  • 查询投影
    • 查询指定字段
    • 聚合查询
    • 分组查询
  • 查询条件设置
    • 等值查询
    • 范围查询
    • 模糊查询
    • 排序查询
  • 总结

    查询投影

    目前我们在查询数据的时候,什么都没有做默认就是查询表中所有字段的内容

    而查询投影即不查询所有字段,只查询出指定内容的数据

    查询指定字段

    • lambda格式

    Mybatis-Plus查询投影与查询条件设置过程

    • 非lambda格式

    Mybatis-Plus查询投影与查询条件设置过程

    //查询指定字段
            //SELECT id,name,age FROM person
            //LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
            //lqw.select(Person::getId,Person::getName,Person::getAge);
            QueryWrapper<Person> lqw = new QueryWrapper<Person>();
            lqw.select("id","name","age","tel");
            List<Person> personList = personDao.selectList(lqw);
            System.out.println(personList);

    聚合查询

    聚合函数查询,完成count、max、min、avg、sum的使用

    • count:总记录数
    • max:最大值
    • mi编程客栈n:最小值
    • avg:平均值
    • sum:求和

    Mybatis-Plus查询投影与查询条件设置过程

            QueryWrapper<Person> lqw = new QueryWrapper<Person>();
            //lqw.select("count(*) as count");
            //SELECT count(*) as count FROM user
            //lqw.select("max(age) as maxAge");
            //SELECT max(age) as maxAge FROM user
            //lqw.select("min(age) as minAge");
            //SELECT min(age) as minAge FROM user
            //lqw.select("sum(age) as sumAge");
            //SELECT sum(age) as sumAge FROM user
            lqw.select("avg(age) as avgAge");
            //SELECT avg(age) as avgAge FROM user
            List<Map<String, Object>> personList = personDao.selectMaps(lqw);
            System.out.println(personList);

    分组查询

    Mybatis-Plus查询投影与查询条件设置过程

    //分组查询
            QueryWrapper<Person> lqw = new QueryWrapper<Person>();
            lqw.select("count(*) as count,tel");
            lqw.groupBy("tel");
            List<Map<String, Object>> personList = personDao.selectMaps(lqw);
            System.out.println(personList);

    注意:

    聚合与分组查询,无法使用lambda表达式来完成

    MP只是对MyBATis的增强,如果MP实现不了,可以直接在DAO接口中使用MyBatis的方式实现

    查询条件设置

    前面只使用了lt()和gt(),除了这两个方法外,MP还封装了很多条件对应的方法:

    • 范围匹配(> 、 = 、between)
    • 模糊匹配(like)
    • 空判定(null)
    • 包含性匹配(in)
    • 分组(group)
    • 排序(order)
    • ……

    等值查询

    • 根据用户名和密码查询用户信息

    Mybatis-Plus查询投影与查询条件设置过程

            LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
            lqw.eq(Person::getName, "李四").eq(Person::getPassword, "3256");
            Person loginPerson = personDao.selectOne(lqw);
            System.out.println(loginPerson);

    范围查询

    对年龄进行范围查询,使用lt()、le()、gt()、ge()、between()进行范围查询

    Mybatis-Plus查询投影与查询条件设置过程

            LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Pe编程客栈rson>();
            lqw.between(Person::getAge,13,17);
            List<Person> personList = personDao.selectList(lqw);
            System.out.println(personList);

    模糊查询

    查询表中name属性的值以T开头的用户信息,使用like进行模糊查询

    Mybatis-Plus查询投影与查询条件设置过程

            LambdaQueryWrapper<Person> lqw = new LambdavwRDkDDpeQueryWrapper<Person>();
            lqw.likeRight(Person::getName,"T");
            List<Person> personList = personDao.selectList(lqw);
            System.out.println(personList);

    排序查询

    查询所有数据,然后按照id降序

    Mybatis-Plus查询投影与查询条件设置过程

            LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<>();
            lqw.orderBy(true,false, Person::getId);
            List<Person>android; personList = personDao.selectList(lqw);
            System.out.println(personList);

    总结

    以上为个人经验,希望能给大家一个www.devze.com参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号