Springboot3 IPage与Pagehelper分页查询

IPage分页记录

@Override
    public IPage<RoleListVO> page( Integer pageNo,Integer PageSize ) {

        IPage<RoleEntity> page = roleMapper.selectPage(new Page<>(pageNo, PageSize), null);

        List<RoleListVO> collect = page.getRecords().stream().map(s -> {

            RoleListVO roleListVO = new RoleListVO();

            BeanUtils.copyProperties(s, roleListVO);

            return roleListVO;
        }).collect(Collectors.toList());

        Page<RoleListVO> roleListVOPage = new Page<>();
        roleListVOPage.setRecords(collect);
        roleListVOPage.setCurrent(page.getCurrent());
        roleListVOPage.setPages(page.getPages());
        roleListVOPage.setTotal(page.getTotal());

        return roleListVOPage;
    }

使用IPage 有多个问题 就是 实例类的转换,实在不方便,将 RoleEntity 转入 RoleListVO 中原有的page信息不能再使用

还需要进行 进一步的封装来简化代码,但是不需要其他引入。非常简单

PageHelper分页记录

pom.xml

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.3</version>
        </dependency>

Application.yml

# PageHelper 分页插件配置
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count=countSql

 操作服务类中 

    @Override
    public PageInfo<MenuListVO> page(Integer pageNo, Integer pageSize) {

        PageHelper.startPage(pageNo, pageSize);

        List<MenuEntity> menuEntities = menuMapper.selectList(Wrappers.lambdaQuery(MenuEntity.class));

        List<MenuListVO> menuLists = menuEntities.stream().map(s -> {
            MenuListVO menuListVO = new MenuListVO();

            BeanUtils.copyProperties(s, menuListVO);

            return menuListVO;
        }).collect(Collectors.toList());

        return new PageInfo<>(menuLists);
    }

  PageHelper运用中更为方便,代码更为简单。 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先需要在pom.xml文件中添加mybatis-plus和mysql的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> ``` 然后在application.yml文件中添加数据库连接信息: ```yml spring: datasource: url: jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai username: root password: root ``` 接着在MyBatis的Mapper接口中定义分页查询方法: ```java public interface UserMapper extends BaseMapper<User> { /** * 分页查询用户列表 * * @param page 分页对象 * @param user 查询参数 * @return 用户列表 */ IPage<User> selectUserPage(Page<User> page, User user); } ``` 其中,`Page`是MyBatis-Plus提供的分页查询对象,`User`是查询参数。 在具体的Mapper实现类中实现该方法: ```java @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public IPage<User> selectUserPage(Page<User> page, User user) { return baseMapper.selectUserPage(page, user); } } ``` 最后在Controller中调用该方法并返回分页结果: ```java @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/list") public IPage<User> list(Page<User> page, User user) { return userService.selectUserPage(page, user); } } ``` 其中,`Page`是SpringBoot提供的分页对象,`User`是查询参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值