MP(Mybatis-Plus)实现分页查询

MP(Mybatis-Plus)实现分页查询

需求

学习一下分页操作

MP分页查询

mybatis-plus自带分页插件,只需要简单配置即可实现分页功能

  1. 创建配置类
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
@Configuration
public class MpConfig {

    //分页插件
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}
  1. 编写分页代码
@Test
    public void findPage() {
        //创建Page对象,传递两个参数:当前页    每页显示记录数
        Page<User> page = new Page<>(1,3);
        //调用mp方法实现分页
        userMapper.selectPage(page,null);
        //IPage<User> pageModel = userMapper.selectPage(page,null);
        List<User> list = page.getRecords();
        System.out.println(list);
        System.out.println(page.getCurrent());
        System.out.println(page.getPages());
        System.out.println(page.getSize());
        System.out.println(page.getTotal());
        System.out.println(page.hasNext());
        System.out.println(page.hasPrevious());
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 首先在pom.xml中添加Mybatis-Plus的依赖: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> ``` 2. 在application.yml中配置Mybatis-Plus的分页插件: ``` mybatis-plus: global-config: db-config: id-type: auto # 主键策略 table-prefix: mp_ # 表前缀 logic-delete-value: 1 #逻辑删除值 logic-not-delete-value: 0 #逻辑未删除值 sql-injector: com.baomidou.mybatisplus.core.injector.LogicSqlInjector # 逻辑删除插件 # 分页插件配置 page-params: # 分页参数 limit: 10 # 每页显示条数,默认 10 max-limit: 1000 # 最大限制数,默认 500 ``` 3. 在Mapper接口中继承Mybatis-Plus的BaseMapper接口,并使用@Mapper注解标注该接口: ``` @Mapper public interface UserMapper extends BaseMapper<User> { } ``` 4. 在Service层的方法中,使用Page对象进行分页查询: ``` @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public Page<User> getUserPage(int pageNum, int pageSize) { Page<User> page = new Page<>(pageNum, pageSize); QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.orderByDesc("id"); userMapper.selectPage(page, wrapper); return page; } } ``` 其中,Page的构造方法需要传入当前页码和每页显示的记录数,selectPage方法需要传入Page对象和查询条件的Wrapper对象。 5. 最后,在Controller层中,调用Service层的方法并将分页结果返回给前端: ``` @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public Page<User> getUsers(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) { return userService.getUserPage(pageNum, pageSize); } } ``` 其中,@RequestParam注解用于接收前端传来的参数,如果没有传入参数,则使用默认值。返回的结果会被自动转化为JSON格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值