springboot整合mybatis Plus实现一个查询全部并按照从第几条数据到第几条数据分页代码实现
时间: 2023-06-16 16:03:41 浏览: 125
springboot整合mybatis-plus实现多表分页查询
下面是一个简单的示例代码:
1. 添加依赖
在 `pom.xml` 文件中添加以下依赖:
```xml
<dependencies>
<!-- Spring Boot Mybatis Plus Starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
</dependencies>
```
2. 配置数据源
在 `application.yml` 文件中配置数据源,这里以 MySQL 数据库为例:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
```
3. 配置 Mybatis Plus
创建一个配置类 `MybatisPlusConfig.java`,添加以下配置:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
```
这里配置了分页插件 `PaginationInterceptor`。
4. 创建实体类和 Mapper
创建一个实体类 `User.java`,并创建对应的 Mapper 接口 `UserMapper.java`,这里不再赘述。
5. 编写查询全部并分页的代码
在 Service 层中添加以下代码:
```java
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public IPage<User> selectAllByPage(int pageNo, int pageSize) {
Page<User> page = new Page<>(pageNo, pageSize);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("id");
return baseMapper.selectPage(page, wrapper);
}
}
```
这里使用了 Mybatis Plus 提供的 `Page` 类,通过传入页码和每页显示数量来创建分页对象。然后使用 `QueryWrapper` 来添加排序规则,最后调用 `baseMapper.selectPage()` 方法来查询并返回分页结果。
6. 测试
在 Controller 中添加以下代码:
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public IPage<User> selectAllByPage(@RequestParam("pageNo") int pageNo, @RequestParam("pageSize") int pageSize) {
return userService.selectAllByPage(pageNo, pageSize);
}
}
```
启动应用,访问 `http://localhost:8080/users?pageNo=1&pageSize=10` 即可查询第一页的数据。
阅读全文