private Integer pageSize = 10; //每页显示条数 private Integer currentPage; //当前页 private Integer totalPage; //总页数 private Integer totalCount; //总条数 private List<T> dataList;//分页数据使用这个实体类写一个springboot的分页查询
时间: 2024-01-04 16:04:32 浏览: 75
好的,以下是一个简单的Spring Boot分页查询的示例代码:
1. 首先,定义一个分页查询的实体类,例如PageRequest:
```
public class PageRequest {
private int pageSize; //每页显示条数
private int currentPage; //当前页
private int totalPage; //总页数
private int totalCount; //总条数
//getter和setter方法省略
}
```
2. 在Controller中编写分页查询的接口:
```
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public PageRequest getUsers(@RequestParam(defaultValue = "1") Integer page) {
int pageSize = 10; //每页显示10条数据
PageRequest pageRequest = userService.findUsers(page, pageSize); //调用Service层方法查询数据
return pageRequest;
}
}
```
3. 在Service层中实现分页查询的业务逻辑:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public PageRequest findUsers(int currentPage, int pageSize) {
PageRequest pageRequest = new PageRequest();
pageRequest.setCurrentPage(currentPage);
pageRequest.setPageSize(pageSize);
int totalCount = userRepository.count(); //查询总条数
pageRequest.setTotalCount(totalCount);
int totalPage = (int) Math.ceil((double) totalCount / pageSize); //计算总页数
pageRequest.setTotalPage(totalPage);
List<User> users = userRepository.findUsers((currentPage - 1) * pageSize, pageSize); //分页查询数据
pageRequest.setDataList(users);
return pageRequest;
}
}
```
4. 在Repository中定义分页查询的SQL语句:
```
@Repository
public class UserRepositoryImpl implements UserRepository {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public int count() {
String sql = "SELECT COUNT(*) FROM user";
return jdbcTemplate.queryForObject(sql, Integer.class);
}
@Override
public List<User> findUsers(int offset, int limit) {
String sql = "SELECT * FROM user LIMIT ?, ?";
return jdbcTemplate.query(sql, new Object[]{offset, limit}, new BeanPropertyRowMapper<>(User.class));
}
}
```
注意事项:
- 分页查询的SQL语句中需要使用LIMIT关键字进行分页查询,LIMIT后面的第一个参数表示查询的起始位置,第二个参数表示查询的条数。
- 在Controller中,我们使用@RequestParam注解来获取当前页码,默认值为1。
- 在Repository中,我们使用JdbcTemplate来执行SQL语句,需要在配置文件中配置数据源和JdbcTemplate的Bean。
阅读全文