目录
排序
- 调用BaseMapper接口中的selectList方法,传入参数Wrappers
- 调用BaseMapper接口中的selectList方法,传入参数Wrappers,写法2
分组
- 使用BaseMapper接口中的selectMaps方法,传入参数QueryWrapper
- 使用BaseMapper接口中的selectMaps方法,传入参数LambdaQueryWrapper
求和
- 使用BaseMapper接口的selectList方法,传入参数QueryWrapper
最大值
- 使用BaseMapper接口的selectOne方法,传入参数QueryWrapper
排序
- 调用BaseMapper接口中的selectList方法,传入参数Wrappers
@RequestMapping(value = "/test4")
@ResponseBody
public String test4(){
// 查询所有,根据age升序
List users = mapper.selectList(Wrappers.query().orderByAsc("age"));
System.out.println(users);
assertThat(users).isNotEmpty();
//多字段排序
List users2 = mapper.selectList(Wrappers.query().orderByAsc("age", "name"));
System.out.println(users2);
assertThat(users2).isNotEmpty();
//先按age升序排列,age相同再按name降序排列
List users3 = mapper.selectList(Wrappers.query().orderByAsc("age").orderByDesc("name"));
System.out.println(users3);
assertThat(users3).isNotEmpty();
return "success";
}
# 控制台打印结果
SELECT id,name,age,email FROM user ORDER BY age ASC
[
User(id=1,
name=Jone,
age=18,
email=ab@c.c,
ignoreColumn=ignoreColumn,
count=null),
User(id=2,
name=Jack,
age=20,
email=test2@baomidou.com,
ignoreColumn=ignoreColumn,
count=null),
User(id=5,
name=Billie,
age=24,
email=test5@baomidou.com,
ignoreColumn=ignoreColumn,
count=null),
User(id=3,
name=Tom,
age=28,
email=test3@baomidou.com,
ignoreColumn=ignoreColumn,
count=null)
]
SELECT id,name,age,email FROM user ORDER BY age ASC,name ASC
[
User(id=1,
name=Jone,
age=18,
email=ab@c.c,
ignoreColumn=ignoreColumn,
count=null),
User(id=2,
name=Jack,
age=20,
email=test2@baomidou.com,
ignoreColumn=ignoreColumn,
count=null),
User(id=5,
name=Billie,
age=24,
email=test5@baomidou.com,
ignoreColumn=ignoreColumn,
count=null),
User(id=3,
name=Tom,
age=28,
email=test3@baomidou.com,
ignoreColumn=ignoreColumn,
count=null)
]
SELECT id,name,age,email FROM user ORDER BY age ASC,name DESC
[
User(id=1,
name=Jone,
age=18,
email=ab@c.c,
ignoreColumn=ignoreColumn,
count=null),
User(id=2,
name=Jack,
age=20,
email=test2@baomidou.com,
ignoreColumn=ignoreColumn,
count=null),
User(id=5,
name=Billie,
age=24,
email=test5@baomidou.com,
ignoreColumn=ignoreColumn,
count=null),
User(id=3,
name=Tom,
age=28,
email=test3@baomidou.com,
ignoreColumn=ignoreColumn,
count=null)
]
- 调用BaseMapper接口中的selectList方法,传入参数Wrappers,写法2
@RequestMapping(value = "/test7")
@ResponseBody
public String test7(){
// 查询所有,根据age升序排序
List users = mapper.selectList(Wrappers.lambdaQuery().orderByAsc(User::getAge));
assertThat(users).isNotEmpty();
System.out.println("test7: " + users);
//多字段排序
List users2 = mapper.selectList(Wrappers.lambdaQuery().orderByAsc(User::getAge, User::getName));
assertThat(users2).isNotEmpty();
//先按age升序排列,age相同再按name降序排列
List users3 = mapper.selectList(Wrappers.lambdaQuery().orderByAsc(User::getAge).orderByDesc(User::getName));
assertThat(users3).isNotEmpty();
return "success";
}
分组
- 使用BaseMapper接口中的selectMaps方法,传入参数QueryWrapper
- 使用BaseMapper接口中的selectMaps方法,传入参数LambdaQueryWrapper
@RequestMapping(value = "/test9")
@ResponseBody
public String test9(){
// 根据age分组
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.select("age, count(*)")
.groupBy("age");
List
求和
- 统计不同年龄的数量
- 使用BaseMapper接口的selectList方法,传入参数QueryWrapper
@RequestMapping(value = "/test10")
@ResponseBody
public String test10(){
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.select("age, count(age) as count")
.groupBy("age");
List list = mapper.selectList(wrapper);
list.forEach(System.out::println);
list.forEach(x -> {
System.out.println(x.getId());
});
return "success";
}
# 控制台
SELECT age, count(age) as count FROM user GROUP BY age
User(id=null, name=null, age=18, email=null, ignoreColumn=ignoreColumn, count=1)
User(id=null, name=null, age=20, email=null, ignoreColumn=ignoreColumn, count=1)
User(id=null, name=null, age=28, email=null, ignoreColumn=ignoreColumn, count=1)
User(id=null, name=null, age=24, email=null, ignoreColumn=ignoreColumn, count=1)
最大值
- 使用BaseMapper接口的selectOne方法,传入参数QueryWrapper
@RequestMapping(value = "/test8")
@ResponseBody
public String test8(){
// 创建wapper,查询最大的id
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.select("max(id) as id");
User user = mapper.selectOne(wrapper);
System.out.println("maxId=" + user.getId());
return "success";
}