//总记录数 private Integer totalElements; //当前页数 private Integer number; //每页条数 private Integer size; //是否为最后一页 private Boolean last; //查询返回的集合 private List<T> content; 有上面字段转com.github.pagehelper.PageInfo工具类
时间: 2023-06-13 19:06:03 浏览: 98
可以使用 com.github.pagehelper.PageInfo 工具类将以上字段转换为分页信息对象。具体实现如下:
```java
PageInfo<T> pageInfo = new PageInfo<>();
pageInfo.setTotal(totalElements);
pageInfo.setPageNum(number);
pageInfo.setPageSize(size);
pageInfo.setIsLastPage(last);
pageInfo.setList(content);
```
其中,totalElements 表示总记录数,number 表示当前页数,size 表示每页条数,last 表示是否为最后一页,content 表示查询返回的集合。在使用 PageInfo 进行分页的时候,需要先引入 pagehelper 依赖包,并配置好 MyBatis 的分页插件。
相关问题
//总记录数 private Integer totalElements; //当前页数 private Integer number; //每页条数 private Integer size; //是否为最后一页 private Boolean last; //查询返回的集合 private List<T> content; 有上面字段转PageInfo工具类
可以使用以下代码将这些字段转换为一个PageInfo对象:
```java
public class PageInfo<T> {
private Integer totalElements;
private Integer number;
private Integer size;
private Boolean last;
private List<T> content;
public PageInfo() {}
public PageInfo(Integer totalElements, Integer number, Integer size, Boolean last, List<T> content) {
this.totalElements = totalElements;
this.number = number;
this.size = size;
this.last = last;
this.content = content;
}
public static <T> PageInfo<T> fromPage(Page<T> page) {
return new PageInfo<>(
page.getTotalElements(),
page.getNumber(),
page.getSize(),
page.isLast(),
page.getContent()
);
}
// getters and setters
}
```
然后在调用查询方法时,将查询结果转换为PageInfo对象即可:
```java
Page<User> page = userRepository.findByNameContaining(name, pageable);
PageInfo<User> pageInfo = PageInfo.fromPage(page);
```
这样,查询结果就可以方便地传递给前端或其他部分进行处理。
private Integer pageSize = 10; //每页显示条数 private Integer currentPage; //当前页 private Integer totalPage; //总页数 private Integer totalCount; //总条数 private List<T> dataList;//分页数据使用这个实体类写一个springboot的分页查询
好的,以下是一个简单的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。
阅读全文