Mybatis-Plus查询投影与查询条件设置过程
目录
- 查询投影
- 查询指定字段
- 聚合查询
- 分组查询
- 查询条件设置
- 等值查询
- 范围查询
- 模糊查询
- 排序查询
- 总结
查询投影
目前我们在查询数据的时候,什么都没有做默认就是查询表中所有字段的内容
而查询投影即不查询所有字段,只查询出指定内容的数据
查询指定字段
- lambda格式

- 非lambda格式

//查询指定字段
//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:求和

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);
分组查询

//分组查询
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)
- ……
等值查询
- 根据用户名和密码查询用户信息

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()进行范围查询

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进行模糊查询

LambdaQueryWrapper<Person> lqw = new LambdavwRDkDDpeQueryWrapper<Person>();
lqw.likeRight(Person::getName,"T");
List<Person> personList = personDao.selectList(lqw);
System.out.println(personList);
排序查询
查询所有数据,然后按照id降序

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)。
加载中,请稍侯......
精彩评论