MybatisPlus LambdaQueryWrapper 多表分页
时间: 2023-10-12 12:13:19 浏览: 149
MybatisPlus LambdaQueryWrapper 多表分页的实现可以通过以下步骤完成:
1. 首先,需要定义一个包含多表关联查询的 LambdaQueryWrapper 对象,例如:
```
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>()
.eq(User::getStatus, 1)
.ge(User::getAge, 18)
.inSql(User::getId, "select user_id from user_role where role_id = 1");
wrapper.join(UserRole.class, UserRole::getUserId, User::getId);
wrapper.join(Role.class, Role::getId, UserRole::getRoleId)
.eq(Role::getName, "admin");
```
上述代码中,创建了一个 LambdaQueryWrapper<User> 对象 wrapper,并指定了多个查询条件和多个表的关联关系。
2. 接下来,需要使用 MybatisPlus 提供的 Page 类来进行分页查询,例如:
```
Page<User> page = new Page<>(1, 10); // 查询第一页,每页10条记录
IPage<Map<String, Object>> result = userMapper.selectMapsPage(page, wrapper);
```
上述代码中,创建了一个 Page<User> 对象 page,并指定了要查询的页码和每页记录数。然后,调用 userMapper 的 selectMapsPage 方法执行分页查询,并传入上述 LambdaQueryWrapper 对象 wrapper 作为查询条件。
返回的结果是一个 IPage<Map<String, Object>> 对象,其中包含了查询结果的总数和当前页的记录列表。如果需要获取更多的分页信息,可以通过该对象的其他方法进行获取。
综上所述,MybatisPlus LambdaQueryWrapper 多表分页的实现需要定义包含多表关联查询的 LambdaQueryWrapper 对象,并结合 Page 类来进行分页查询。
阅读全文
相关推荐
















