🍁 Автор: Краткий информационный доклад, лектор по контракту CSDN, эксперт блога CSDN, эксперт Huawei Cloud Sharing, блоггер-эксперт Alibaba Cloud 📌 Области специализации: Full stack инженер, краулер, алгоритм ACM. 💒 Официальный аккаунт: Краткий информационный разговор 🔥Сайт: vip.zsqt.cc
✅MybatisPlus объединяет группировку для реализации группировки и суммирования.
на этот разиспользоватьдаLambdaQueryWrapper
,использоватьQueryWrapper
Это относительно просто, и я не буду это расписывать.
Шаг 1. Добавьте новое количество полей в класс сущности.
@TableName(value ="user")
@Data
public class User implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
@TableField(value = "name")
private String name;
@TableField(value = "age")
private Integer age;
@TableField(value = "state")
private String state;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
//это место
@TableField(value = "count(*)",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
private Integer count;
}
Шаг 2. Измените интерфейс запроса.
@GetMapping("/count")
public List<User> count(){
new QueryWrapper<>()
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(User::getState,User::getCount);
queryWrapper.groupBy(User::getState);
List<User> list = userService.list(queryWrapper);
return list;
}
Возвращенные результаты
[
{
"id": null,
"name": null,
"age": null,
"state": "1",
"count": 3
},
{
"id": null,
"name": null,
"age": null,
"state": "2",
"count": 2
}
]
Шаг 1. Добавьте новое количество полей в класс сущности.
@TableName(value ="user")
@Data
public class User implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
@TableField(value = "name")
private String name;
@TableField(value = "age")
private Integer age;
@TableField(value = "state")
private String state;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
@TableField(value = "count(*)",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
private Integer count;
//это место
@TableField(value = "sum(age)",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
private Integer ages;
}
Шаг 2. Измените интерфейс запроса.
@GetMapping("/count")
public List<User> count(){
new QueryWrapper<>()
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
//это место добавлено новое поле
queryWrapper.select(User::getState,User::getCount,User::getAges);
queryWrapper.groupBy(User::getState);
List<User> list = userService.list(queryWrapper);
return list;
}
Возвращенные результаты
[
{
"id": null,
"name": null,
"age": null,
"state": "1",
"count": 3,
"ages": 6
},
{
"id": null,
"name": null,
"age": null,
"state": "2",
"count": 2,
"ages": 9
}
]
Готово, разбросай цветы и скажи спасибо 🎆🎇🌟 Следуй за мной, чтобы не потеряться, я тебя сниму и сделаю богатым.
Writted By Краткий ознакомительный разговор