查询
(1).批量查询
//批量查询
@Test
public void BatchQuery() {
/**
* 批量查询ID为1,2,3,4的用户
* */
List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3, 4));
System.out.println(users);
}
(2).条件查询
//条件查询
@Test
public void conditionQuery() {
/**
* 查询name = 张无忌,age= 25
*
* */
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("name","张无忌");
columnMap.put("age", 25);
List<User> users = userMapper.selectByMap(columnMap);
}
分页查询
(1).分页插件
在Config包中的MpCnnfig类添加分页插件PaginationInterceptor
@Configuration
@MapperScan(" com.example.demomp.mapper")
public class MpConfig {
/**
* 乐观锁插件
* 注意在Mybatis-plus3.4.0版本后,放弃此方法乐观锁处理器
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
/**
* 分页查询插件
*
* */
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
(2).分页查询测试
// 分页查询
@Test
public void PagingQuery() {
// current: 当前页数 size: 每页的记录数
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 size = userPage.getSize();// 查询总记录数
boolean previous = userPage.hasPrevious();//是否有上一页
boolean next = userPage.hasNext();// 是否有下一页
System.out.println(pages);
System.out.println(current);
System.out.println(records);
System.out.println(size);
System.out.println(previous);
System.out.println(next);
}
测试一下,看看SQL日志。
不得不感叹!Mybatis-plus真的太强大了!太方便了!确实帮助我们省却不少时间,几乎不怎需要编写SQL语句。