MyBatis-Plus入门(五):简单查询与分页查询

1、简单查询

MP既可以根据ID查询某条记录,也可以通过多个id批量查询,完成了动态sql的foreach的功能。

@Test
public void testSelect1() {
    User user = userMapper.selectById(1);//单个查询
    List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));//查询id为1,2,3的记录
}

2、条件查询

通过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);
}

3、分页查询

3.1添加分页插件

MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能。
配置类中添加@Bean配置
3.3.x及以下版本用此写法

/**
 * 分页插件
 */
@Bean
public PaginationInterceptor paginationInterceptor() {
    return new PaginationInterceptor();
}

3.4.0及以上用新写法

    @Bean
    public MybatisPlusInterceptor MybatisPlusInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //乐观锁
        mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        //分页配置
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }

3.2测试selectPage分页
测试:最终通过page对象获取相关数据

    @Test
    public void testSelectPage() {
        Page<User> page = new Page(1,3);
        Page<User> userPage = userMapper.selectPage(page, null);
        //返回对象得到分页所有数据
        long pages = userPage.getPages(); //总页数
        long current = userPage.getCurrent(); //当前页
        List<User> records = userPage.getRecords(); //查询数据集合
        long total = userPage.getTotal(); //总记录数
        boolean hasNext = userPage.hasNext();  //下一页
        boolean hasPrevious = userPage.hasPrevious(); //上一页

        System.out.println("总页数为:"+pages);
        System.out.println("当前页为第:"+current+"页");
        System.out.println(records);
        System.out.println("总记录数为:"+total);
        System.out.println(hasNext?"有下一页":"无下一页");
        System.out.println(hasPrevious?"有上一页":"无上一页");
    }

在这里插入图片描述
当前数据库如上图,有7条记录,测试一下能否查询成功吧

在这里插入图片描述
由日志可见,我们成功查询到了七条数据,并且打印出了第一页的三条数据,分页查询成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值