mybatis-plus实现分页

mybatis-plus实现分页

法一:标准法

代码:

  • 依赖

    com.baomidou
    mybatis-plus-boot-starter
    3.3.0

  • mybatisplusconfig
@Configuration
public class MybatisPlusConfig {
   @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
   }
  • mapper:
@Mapper
public interface UserMapper extends BaseMapper {

//亲测这里最前面使用Ipage和Page是一样的,如果这里使用的是Page,下面也要改。但是还是推荐官网上面的Ipage,不改最好。
	//Page selectPageVo(Page page);
    IPage selectPageVo(Page page);
}
  • service
public interface UserService extends IService {
    IPage selectPageVo(Page page);
}
  • serviceImpl
@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
    @Autowired
    UserMapper userMapper;

    @Override
    public IPage selectPageVo(Page page) {
        return userMapper.selectPageVo(page);
    }
}
  • controller
@RequestMapping("/pagelist/{num}/{size}")
public IPage pagelist(@PathVariable("num") int num,
                            @PathVariable("size") int size){
    Page page=new Page<>(num,size);
    return userService.selectPageVo(page);
}

结果:访问localhost:8080/pagelist/1/5-------------成功

mybatis-plus实现分页_第1张图片

这个结果会有五条数据,并且还会带上一些其他的数据,具体见图

如 total:整张表一共多少个行

size:自己设置的一页多少条数据

current:当前页

orders:[]----这个我不知道是啥

pages:一共多少页

法二:偷懒法

前提是自己的MyBatis-plus自带的CRUD方法能够确定运行跑起来。

  • 依赖同上

    com.baomidou
    mybatis-plus-boot-starter
    3.3.0

  • MyBatisplusConfig同上
@Configuration
public class MybatisPlusConfig {

    // 旧版
   @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
   }
   }
  • mapper:空的
  • service:空的
  • Controller:直接调用MyBatisplus默认有的page方法即可即可
@RequestMapping("/pagelist2")
public Page pagelist2(){
    Page page=new Page<>(1,2);
   return   userService.page(page);
}

@RequestMapping("/pagelist2")
public Page pagelist2(){
    Page page=new Page<>(1,2);
   return   userService.page(page);
}

你可能感兴趣的:(mybatis)