spring boot mybatis puls 查找一个表的所有数据,并带出他对应子类的总数
时间: 2023-12-06 16:45:21 浏览: 66
假设有一个表Parent和一个表Child,Parent和Child是一对多的关系,Parent中的每一条数据都对应着多条Child数据。可以使用MyBatis-Plus的Wrapper进行联表查询,然后使用MyBatis的ResultMap将查询结果映射成一个包含Parent和对应Child数量的实体类。
首先创建一个包含Parent和Child数量的实体类:
```java
public class ParentWithChildCount {
private Parent parent;
private int childCount;
// getter and setter
}
```
然后在Mapper中编写查询语句:
```java
@Select("SELECT p.*, COUNT(c.id) as childCount " +
"FROM parent p LEFT JOIN child c ON p.id = c.parent_id " +
"GROUP BY p.id")
List<ParentWithChildCount> getParentWithChildCount();
```
这个查询语句使用了LEFT JOIN将Parent和Child联表查询,并使用GROUP BY将结果按Parent分组。COUNT函数可以统计每个Parent有多少个对应的Child。
最后,在Service中调用Mapper的方法即可获取结果:
```java
@Autowired
private ParentMapper parentMapper;
public List<ParentWithChildCount> getParentWithChildCount() {
return parentMapper.getParentWithChildCount();
}
```
阅读全文