使用springboot mybaitis 框架pagehelp 技术MySQL注解形式写一个分页查询
时间: 2024-01-14 15:02:46 浏览: 71
好的,以下是示例代码:
1. 添加依赖
在 `pom.xml` 文件中添加以下依赖:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
```
2. 配置分页插件
在 `application.yml`(或 `application.properties`)文件中添加以下配置:
```yaml
mybatis:
configuration:
# 开启驼峰命名规则
map-underscore-to-camel-case: true
# 分页插件配置
plugins:
- interceptor:
# 指定使用的分页插件
type: com.github.pagehelper.PageInterceptor
# 配置分页插件参数
properties:
# 分页合理化参数,默认为false,如果设置为true,pageNum<=0时会查询第一页,pageNum>pages(超过总数时),会查询最后一页
reasonable: true
# 支持通过Mapper接口参数来传递分页参数,默认为false,如果设置为true,会从Mapper方法的参数中自动根据参数名提取pageNum和pageSize作为分页参数
support-methods-arguments: true
```
3. 编写Mapper接口
```java
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user")
List<User> findAll();
}
```
4. 编写Service类
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public PageInfo<User> findUsersByPage(int pageNum, int pageSize) {
// 使用PageHelper.startPage方法设置分页参数
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userMapper.findAll();
// 使用PageInfo对查询结果进行封装,包括分页信息和查询结果
return new PageInfo<>(userList);
}
}
```
5. 编写Controller类
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public PageInfo<User> findUsersByPage(@RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize) {
return userService.findUsersByPage(pageNum, pageSize);
}
}
```
以上代码中,使用了PageHelper插件来进行分页查询。在Mapper接口中,只需要编写普通的SQL语句即可。在Service类中,使用PageHelper.startPage方法设置分页参数,再调用查询方法获取查询结果,最后使用PageInfo对查询结果进行封装。在Controller类中,接收请求参数,调用Service类的分页查询方法,并返回结果。
阅读全文