03-mybatis-plus查询&分页操作

查询

通过Id批量查询和单一查询

//多个id批量查询
@Test
public void testSelect1() {
    List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
     userMapper.selectById(1);
    System.out.println(users);
}

简单的条件查询

不常使用,我们一般使用wrapper操作。

通过map封装查询条件
注意:map中的key对应数据库中的列名。如:数据库user_id,实体类是userId,这时map的key需要填写user_id

//简单条件查询
@Test
public void testSelect2() {
    Map<String, Object> columnMap = new HashMap<>();
    columnMap.put("name","Jack");
    columnMap.put("age",20);
    List<User> users = userMapper.selectByMap(columnMap);
    System.out.println(users);
}

分页

selectPage使用

  1. 第一步导入MybatisPlus的分页插件:MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能
  2. 在Mp配置类中注册分页插件
/**
     * 分页查询插件
     *
     * @return
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
  1. 创建Page对象,传入两个参数(当前页数,每页显示几条数据)
  2. 调用mapper的selectPage方法传入参数,获取对应的数据。
 /**
     * 分页查询,首先引入分页查询插件
     */
    @Test
    void contextLoad6() {
        // 开启分页,创建分页对象
        Page<User> page = new Page<>(1, 3);
        // 获取分页数据,null代表查询无条件
        Page<User> userPage = userMapper.selectPage(page, null);
        //  测试分页数据
        List<User> records = userPage.getRecords();
        // 获取总页数
        long pages = userPage.getPages();
        // 获取当前页
        long current = userPage.getCurrent();
        System.out.println(records);
        System.out.println(pages);
        System.out.println(current);
    }

selectMapsPage使用

投影我们制定想要的列,其他的管

当指定了特定的查询列时,希望分页结果列表只返回被查询的列,而不是很多null值 测试selectMapsPage分页:结果集是Map

@Test
public void testSelectMapsPage() {
//Page不需要泛型
Page<Map<String, Object>> page = newPage<>(1, 5);
Page<Map<String, Object>> pageParam = userMapper.selectMapsPage(page, null);
List<Map<String, Object>> records = pageParam.getRecords();
records.forEach(System.out::println);
System.out.println(pageParam.getCurrent());
System.out.println(pageParam.getPages());
System.out.println(pageParam.getSize());
System.out.println(pageParam.getTotal());
System.out.println(pageParam.hasNext());
System.out.println(pageParam.hasPrevious());
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值