mybatisplus 怎么写groupby和count并且用stream流转成Map<String,Integer>返回
时间: 2024-05-02 22:19:15 浏览: 120
摆脱Mapper的mybatis-plus,封装stream和lambda操作进行数据返回处理
关于mybatisplus如何写groupby和count,可以使用mybatisplus提供的wrapper来实现。
示例代码如下:
```java
QueryWrapper<MyEntity> wrapper = new QueryWrapper<>();
wrapper.select("col_name1 AS name, COUNT(col_name2) AS count")
.groupBy("col_name1");
List<MyEntity> list = myEntityMapper.selectList(wrapper);
Map<String, Integer> result = list.stream()
.collect(Collectors.toMap(MyEntity::getName, MyEntity::getCount));
```
其中,MyEntity是对应表的实体类,col_name1和col_name2是对应表的列名。
首先使用wrapper.select()方法来指定查询的列和count,使用wrapper.groupBy()方法指定分组的列,然后使用myEntityMapper.selectList()方法来查询数据。
最后使用Java 8的stream流来将查询结果转成Map<String, Integer>。
阅读全文