分页查询基本方式
java
@SpringBootTest(classes = LearningApplication.class)
public class MPTest {
@Autowired
ILearningLessonService lessonService;
@Test
public void test(){
/**
* Page<LearningLesson>:MyBatisPlus提供的分页对象
* 1:当前页数
* 2:每页显示的记录数
*/
Page<LearningLesson> page = new Page<>(1, 2);
/**
* wrapper:使用Lambda表达式构造的查询条件。
*/
LambdaQueryWrapper<LearningLesson> wrapper = new LambdaQueryWrapper<>();
//用户 id 等于 2 的记录
wrapper.eq(LearningLesson::getUserId, 2);
//业务层的服务类调用分页查询方法 (page, wrapper) -> (分页对象,查询条件)
lessonService.page(page, wrapper);
}
按照某一字段升序或者降序排序
java
@Test
public void test1(){
Page<LearningLesson> page = new Page<>(1, 2);
/**
*构建按照什么字段进行排序
*/
List<OrderItem> itemList = new ArrayList<>();
//指定排序的对象
OrderItem item = new OrderItem();
item.setColumn("latest_learn_time");//按什么latest_learn_time字段排序
item.setAsc(false);//降序排序
itemList.add(item);
//排序条件添加到分页对象中
page.addOrder(itemList);
LambdaQueryWrapper<LearningLesson> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(LearningLesson::getUserId, 2);
lessonService.page(page, wrapper);
}
简化写法
java
@Test
public void test2(){
//分页对象
Page<LearningLesson> page = new Page<>(1, 2);
//构建分页查询条件
List<OrderItem> itemList = new ArrayList<>();
OrderItem item = new OrderItem();
item.setColumn("latest_learn_time");
item.setAsc(false);
itemList.add(item);
page.addOrder(itemList);
//构造查询条件和调用分页查询方法一起。
lessonService.lambdaQuery()
.eq(LearningLesson::getUserId,2)
.page(page);
}