分页返回类PageResult

1、实现序列化接口
2、返回数据的rows属性,为了确保传递不同类型的数据,要设置为泛型(其他实体类也都要实现序列化接口)
3、无参和有参构造方法

public class PageResult implements Serializable {
    private Long total;

    private List<?> rows;

    public PageResult() {
    }

    public PageResult(Long total, List<?> rows) {
        this.total = total;
        this.rows = rows;
    }

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }

    public List<?> getRows() {
        return rows;
    }

    public void setRows(List<?> rows) {
        this.rows = rows;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在Spring Boot中使用MyBatis框架进行分页查询并同时返回计数,可以按照以下步骤操作: 1. 在Mapper中定义两个方法:一个用于查询列表,一个用于查询总数。例如: ```java public interface MyMapper { List<MyEntity> findByPage(@Param("offset") int offset, @Param("pageSize") int pageSize); int count(); } ``` 2. 在Service层中编写方法来调用Mapper中的两个方法,以执行分页查询并同时返回计数。例如: ```java @Service public class MyService { @Autowired private MyMapper myMapper; public PageResult<MyEntity> findByPage(int pageNo, int pageSize) { int offset = (pageNo - 1) * pageSize; List<MyEntity> list = myMapper.findByPage(offset, pageSize); int count = myMapper.count(); return new PageResult<>(list, count, pageNo, pageSize); } } ``` 在上面的例子中,PageResult是一个自定义的分页结果对象,它包含了查询结果列表、总记录数、当前页码和每页记录数。 通过调用findByPage方法,可以执行分页查询并同时返回计数。在Controller层中,可以根据需要将PageResult对象转换为JSON或者渲染到模板中。 ### 回答2: 在使用Spring Boot和MyBatis框架进行分页查询时,可以通过以下步骤同时返回计数。 首先,在Mapper接口中定义两个方法,一个用于查询数据,一个用于查询总数。例如: ```java public interface UserMapper { List<User> findUsers(@Param("startIndex") int startIndex, @Param("pageSize") int pageSize); int countUsers(); } ``` 在Mapper的XML映射文件中,实现这两个方法。例如: ```xml <select id="findUsers" resultType="User"> SELECT * FROM user LIMIT #{startIndex}, #{pageSize} </select> <select id="countUsers" resultType="int"> SELECT COUNT(*) FROM user </select> ``` 然后,在Service层中,调用Mapper接口的这两个方法,并将结果封装到自定义的分页对象中。例如: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public PageInfo<User> findUsers(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); // 开启分页,并设置页码和每页大小 List<User> userList = userMapper.findUsers((pageNum - 1) * pageSize, pageSize); // 查询数据 int total = userMapper.countUsers(); // 查询总数 PageInfo<User> pageInfo = new PageInfo<>(userList); // 封装数据和计数到分页对象中 pageInfo.setTotal(total); return pageInfo; // 返回分页对象 } } ``` 最后,在Controller中调用Service层的方法,并将结果返回给前端页面。例如: ```java @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public PageInfo<User> findUsers(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) { return userService.findUsers(pageNum, pageSize); } } ``` 这样,通过使用MyBatis和Spring Boot的集成,我们可以同时返回分页查询的数据和计数。 ### 回答3: 在Spring Boot中使用MyBatis框架进行分页查询并同时返回计数,可以按照以下步骤进行操作: 1. 在配置文件中配置分页插件。在application.properties中添加如下配置: ``` mybatis.configuration.default-scripting-language=org.apache.ibatis.scripting.xmltags.XMLLanguageDriver ``` 这样配置可以使分页插件正常工作。 2. 在Mapper接口中定义分页查询的方法。使用MyBatis提供的分页插件,可以直接在Mapper接口中定义分页查询的方法,例如: ``` List<User> getUsersByPage(@Param("offset") int offset, @Param("limit") int limit); ``` 这个方法接受两个参数,`offset`表示查询的起始位置,`limit`表示每页显示的数据条数。 3. 在Mapper.xml中编写相应的SQL语句。需要使用`limit`和`offset`来限制查询结果的范围,同时还需要编写SQL语句来获取总行数,例如: ``` SELECT * FROM user LIMIT #{offset}, #{limit}; SELECT COUNT(*) FROM user; ``` 4. 在Service层中调用Mapper接口的分页查询方法。在Service层中,使用`PageHelper`来设置分页参数,并调用Mapper接口的分页查询方法获取数据,例如: ``` PageInfo<User> pageInfo = PageHelper.startPage(pageNum, pageSize) .doSelectPageInfo(() -> userService.getUsersByPage(offset, limit)); ``` 5. 返回结果。`PageInfo`对象可以同时包含查询结果和计数信息。可以使用它的方法来获取相关信息,例如: ``` long totalCount = pageInfo.getTotal(); // 总行数 List<User> userList = pageInfo.getList(); // 查询结果 ``` 通过以上步骤,就可以在Spring Boot中使用MyBatis框架进行分页查询,并同时返回计数信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值