public static <T> PageInfo<T> startPage(PageSortInterface pageSort, Supplier<List<T>> supplier, QueryWrapper<T> queryWrapper) ,请给一个示例
时间: 2023-07-08 13:41:53 浏览: 115
Page类应用实例
好的,以下是一个示例:
假设你有一个 `UserService` 类,其中有一个方法 `getUserList`,用于获取用户列表。你想要使用 `startPage` 方法分页查询用户列表,并将查询条件封装成 `QueryWrapper` 对象。可以使用以下代码:
```
public interface UserService {
PageInfo<User> getUserPage(PageSortInterface pageSort, QueryWrapper<User> queryWrapper);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public PageInfo<User> getUserPage(PageSortInterface pageSort, QueryWrapper<User> queryWrapper) {
return PageHelperUtils.startPage(pageSort, () -> userMapper.selectList(queryWrapper), queryWrapper);
}
}
```
在上述代码中,`startPage` 方法的第二个参数使用了 Lambda 表达式 `() -> userMapper.selectList(queryWrapper)`,该 Lambda 表达式实际上是一个 `Supplier` 接口的实现,用于提供用户列表数据。`selectList` 方法接受一个 `QueryWrapper` 对象作为参数,所以在调用时可以直接传递 `queryWrapper` 参数。
当你需要查询用户列表时,可以在其他类中注入 `UserService`,然后调用 `getUserPage` 方法即可完成分页查询,例如:
```
@Service
public class SomeService {
@Autowired
private UserService userService;
public void someMethod() {
PageSort pageSort = new PageSort(1, 10, "id", "DESC");
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 设置查询条件
PageInfo<User> pageInfo = userService.getUserPage(pageSort, queryWrapper);
// 处理查询结果
}
}
```
在上述代码中,`PageSort` 是一个封装了分页排序相关参数的类,你可以根据自己的需要进行修改。`QueryWrapper` 是 Mybatis-plus 中用于封装查询条件的类,你可以根据自己的需要设置查询条件。
阅读全文