查询操作和分页
查询操作,比较简单,但方式比较多,更具需要自行选择
@Test//简单查询
void testSelect(){
user user = userMapper.selectById(1L);//serializable 可序列化的
userMapper.selectBatchIds(Arrays.asList(1L,8L));
System.out.println(user);
}
@Test
void testSelectByBatchIds(){
List<user> users = userMapper.selectBatchIds(Arrays.asList(1L, 8L));
users.forEach((x)->{
System.out.println(x);
});
}
@Test //根据条件查询之一 map
void testSelectMap(){
HashMap<String, Object> map = new HashMap<>();
//条件在map中填写
map.put("name","小落");
List<user> users = userMapper.selectByMap(map);
users.forEach(System.out::println);
}
分页查询
mybatis-plus中内置了分页组件
怎么使用分页组件呢?
- 增加配置组件
// 旧版
@Bean //分页组件
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
// 开启 count 的 join 优化,只针对部分 left join
// paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
- 测试分页组件
@Test
void pageTest(){
//page:1.当前页 2.页面大小
IPage<user> Page = new Page<>(2,5);
System.out.println(userMapper.selectPage(Page, null));
System.out.println("Page.getCurrent()"+Page.getCurrent());//返回当前页面
System.out.println("Page.getPages()"+Page.getPages()); //返回总页数
System.out.println("Page.getRecords()"+Page.getRecords()); //返回分页后查询的记录
System.out.println("Page.getTotal()"+Page.getTotal());//返回总用户数目
System.out.println("Page.getSize()"+Page.getSize());//返回页面大小
}
就步骤来讲,真的简便了许多