MyBatis-Plus 查询操作
一、查询
1.1、普通查询
/**
* 普通查询
*/
@Test
public void selectById() {
User user = userMapper.selectById(1412963147760857089L);
System.out.println(user);
}
查询结果:
1.2、通过多个ID批量查询
//多个id批量查询
@Test
public void testSelectByIds(){
List<User> users = userMapper.selectBatchIds(Arrays.asList(1412963147760857089L,1413086639927959553L,1413087102014337026L));
System.out.println(users);
}
查询结果:
1.3、简单条件查询
//简单条件查询
@Test
public void selectSimpleTerm(){
Map<String,Object> columnMap = new HashMap<>();
columnMap.put("name","lucyYY");
columnMap.put("age",20);
List<User> users = userMapper.selectByMap(columnMap);
System.out.println(users);
}
查询结果:
二、分页
2.1、分页插件
MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能。
2.2、添加分页插件
配置类中添加@Bean配置:
/**
* 分页查询插件
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
2.3、测试selectPage分页
通过page对象获取相关数据:
//分页查询
@Test
public void testSelectPage(){
Page<User> page = new Page(2,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);
}
查询结果:
2.4、测试selectMapPage分页
当指定了特定的查询列时,希望分页结果列表只返回被查询的列,而不是很多null值。这时就可以测试selectMapsPage分页:结果集是Map。
//根据特定条件查询结果
@Test
public void testSelectMapPage(){
Page<Map<String,Object>> page = new Page<>(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());
}
查询结果: