查询

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐