springboot+mybatisplus 多表分页查询
时间: 2023-09-05 08:06:50 浏览: 159
SpringBoot+MyBatisPlus+Thymeleaf 增删改查CRUD
5星 · 资源好评率100%
在 SpringBoot 中使用 MybatisPlus 进行多表分页查询可以按照以下步骤进行操作:
1. 在 pom.xml 中添加 MybatisPlus 和分页插件的依赖:
```
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
```
2. 创建实体类和 Mapper 接口,使用注解进行配置。例如,如果要进行两张表的联表分页查询,可以创建一个包含两个表的实体类,其中使用 `@Table` 注解指定表名,使用 `@TableField` 注解指定字段名:
```java
@Data
@TableName("table1 t1")
public class Table1AndTable2Entity {
@TableField("t1.id")
private Integer id;
@TableField("t1.name")
private String name;
@TableField("t2.field1")
private String field1;
@TableField("t2.field2")
private String field2;
}
```
```java
public interface Table1AndTable2Mapper extends BaseMapper<Table1AndTable2Entity> {
List<Table1AndTable2Entity> selectTable1AndTable2(Page<Table1AndTable2Entity> page);
}
```
3. 在 Service 层中调用 Mapper 的分页查询方法:
```java
@Service
public class Table1AndTable2ServiceImpl implements Table1AndTable2Service {
@Autowired
private Table1AndTable2Mapper table1AndTable2Mapper;
@Override
public Page<Table1AndTable2Entity> selectTable1AndTable2(Page<Table1AndTable2Entity> page) {
return page.setRecords(table1AndTable2Mapper.selectTable1AndTable2(page));
}
}
```
4. 在 Controller 层中接收前端传入的分页参数,并调用 Service 层的方法进行查询:
```java
@RestController
@RequestMapping("/table1AndTable2")
public class Table1AndTable2Controller {
@Autowired
private Table1AndTable2Service table1AndTable2Service;
@GetMapping("/list")
public Result<List<Table1AndTable2Entity>> list(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
Page<Table1AndTable2Entity> page = new Page<>(pageNum, pageSize);
Page<Table1AndTable2Entity> pageResult = table1AndTable2Service.selectTable1AndTable2(page);
return Result.success(pageResult.getRecords(), pageResult.getTotal());
}
}
```
这样,就可以使用 MybatisPlus 进行多表分页查询了。
阅读全文