mybatis-plus 使用官网自带分页插件进行分页 total 始终去不到值

本文解决了一个在使用MybatisPlus时遇到的问题,即total数据始终显示为0。通过逐步排查,从检查数据库数据到分析配置类,最终发现是由于MybatisPlusConfig类未正确标注@Bean注解导致的问题。文章详细记录了问题排查和解决的过程。

问题描述:如下截图:

total 数据始终为o,

解决思路:1.首先查看数据库数据,是否能查询到数据;

sql单独执行可以查询到数据,排除sql问题导致

2.查询官网:https://baomidou.com/guide/page.html 可知springboot 需要添加 MybatisPlusConfig 类在加载配置和配置文件

然后分析发现没有问题

3.参考网上相同错误分析发现

在配置类中添加数据库断言;不行

4.配置类加上注解 也不行

最后发现 MybatisPlusConfig 没有加上Bean 注解,因为看了一眼自己就写了,第二个是是因为我的分页配置类和SpringBoot的启动类不在同一包下 可能是我自己写的测试demo原因没有主意,问题虽然是小问题,但是发现问题,一步一步分析很重要

 

Reference:https://blog.youkuaiyun.com/hdn_kb/article/details/102585230

 

 

### MyBatis-Plus 分页查询的实现方法 MyBatis-Plus 提供了多种方式来实现分页查询功能,主要包括使用内置的分页方法和结合 PageHelper 插件来实现更复杂的分页需求。 #### 1. 使用内置分页方法 MyBatis-Plus 提供了四个内置的分页方法,分别用于无条件和有条件分页查询: - **无条件分页查询**: ```java IPage<T> page(IPage<T> page); ``` - **条件分页查询**: ```java IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper); ``` - **无条件分页查询返回 Map 集合**: ```java IPage<Map<String, Object>> pageMaps(IPage<T> page); ``` - **条件分页查询返回 Map 集合**: ```java IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper); ``` 在使用这些方法时,需要传入一个 `IPage` 对象,该对象包含了分页的相关信息,如当前页码、每页显示的记录数等。例如,创建一个 `Page` 对象来表示分页信息: ```java Page<User> page = new Page<>(1, 10); // 查询第一页,每页显示10条记录 ``` #### 2. 配置分页插件 为了使用 MyBatis-Plus分页功能,需要在配置类中启用分页插件。可以通过创建一个配置类并添加 `PaginationInterceptor` 来实现: ```java @Configuration public class MyBatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } } ``` #### 3. 使用 PageHelper 插件 PageHelper 是一个广泛使用分页插件,它也可以与 MyBatis-Plus 配合使用,提供更丰富的分页功能。通过引入 PageHelper,可以实现更复杂的分页逻辑,例如动态分页分页参数传递等。 #### 4. 查询结果展示 在执行分页查询后,可以通过 `IPage` 对象获取分页结果,包括当前页的数据列表、总记录数、总页数等信息。例如: ```java IPage<User> userPage = userService.page(page); List<User> users = userPage.getRecords(); // 获取当前页的数据列表 long total = userPage.getTotal(); // 获取总记录数 int pages = userPage.getPages(); // 获取总页数 ``` 这些信息可以用于前端展示,帮助用户更好地理解和导航数据。 #### 5. 示例代码 以下是一个完整的示例,展示了如何在服务层调用分页查询方法: ```java @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public IPage<User> getUsers(int pageNum, int pageSize) { Page<User> page = new Page<>(pageNum, pageSize); return this.page(page); } } ``` 在控制器中,可以接收分页参数并调用服务方法: ```java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping public ResponseEntity<IPage<User>> getUsers(@RequestParam int pageNum, @RequestParam int pageSize) { IPage<User> userPage = userService.getUsers(pageNum, pageSize); return ResponseEntity.ok(userPage); } } ``` 通过以上步骤,可以在 MyBatis-Plus 中实现高效的分页查询功能,从而更好地处理大数据量场景下的数据展示需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值