mybatisplus分组
时间: 2023-09-22 07:11:46 浏览: 93
mybatis-plus分页查询
MyBatis-Plus(简称MP)是一个基于 MyBatis 的增强工具,提供了许多便捷的功能和增强特性。在 MyBatis-Plus 中,可以使用分组来对查询结果进行分组统计。以下是使用 MyBatis-Plus 实现分组查询的步骤:
1. 在实体类中定义需要分组的字段,使用 `@TableField` 注解指定数据库字段名。
```java
public class User {
private Long id;
@TableField("username")
private String username;
@TableField("age")
private Integer age;
// 省略 getter 和 setter
}
```
2. 创建一个 Mapper 接口,继承 `BaseMapper` 接口,并使用 `@Mapper` 注解标识为 MyBatis 的 Mapper 接口。
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<Map<String, Object>> groupByAge();
}
```
3. 在 Mapper 接口中定义一个方法用于执行分组查询,使用 SQL 的 `GROUP BY` 子句进行分组。
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT age, COUNT(id) AS count FROM user GROUP BY age")
List<Map<String, Object>> groupByAge();
}
```
4. 在 Service 类中调用 Mapper 接口的分组查询方法。
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<Map<String, Object>> groupByAge() {
return userMapper.groupByAge();
}
}
```
通过以上步骤,就可以使用 MyBatis-Plus 实现分组查询。调用 `groupByAge()` 方法即可获得按年龄分组的结果,结果以 Map 的形式返回,其中 key 为 age 字段的值,value 为分组后对应的记录数。
阅读全文