1.MP方式實(shí)現(xiàn)分頁查詢(API調(diào)用)
/**
* 以MP的方式分頁查詢
* 需求:
* 1.分頁查詢 List<user>
* 2.獲取記錄總數(shù) 封裝pageResult對象
*
* @param pageResult
* @return
*/
@Override
public PageResult getUserList(PageResult pageResult) {
//第一部分 實(shí)現(xiàn)數(shù)據(jù)的封裝!!!
int pageNum = pageResult.getPageNum(); //獲取頁面
int pageSize = pageResult.getPageSize();//獲取條件
//參數(shù)1: page分頁對象
Page<User> page = new Page(pageNum,pageSize);
//參數(shù)2: 分頁的查詢條件 username模糊查詢
//問題: 如果用戶沒有傳遞query like關(guān)鍵字 拼接參數(shù)
//動(dòng)態(tài)拼接: 傳參拼接like condition:true 拼接like條件
// false 不拼接 like關(guān)鍵字
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//判斷用戶是否傳參 如果傳參 返回true 反之 返回false
boolean flag = StringUtils.hasLength(pageResult.getQuery());
queryWrapper.like(flag,"username",pageResult.getQuery());
//規(guī)則: page2個(gè)參數(shù) 根據(jù)分頁查詢返回 total/分頁后的記錄 4個(gè)參數(shù)
page = userMapper.selectPage(page,queryWrapper);
//根據(jù)分頁對象,獲取想要的結(jié)果
List<User> userList = page.getRecords();
long total = page.getTotal();
pageResult.setTotal(total).setRows(userList);
return pageResult;
}
2.編輯配置類
包路徑: com.jt.config
說明: MP如果需要進(jìn)行分頁的查詢 ,則必須添加配置類.否則分頁不能正常執(zhí)行.
關(guān)于配置類的說明:SpringBoot整合第三方框架時(shí),提供了配置類的機(jī)制, 通過這種機(jī)制,第三方框架可以實(shí)現(xiàn)定制化的對象的創(chuàng)建.
//1.表示這個(gè)類 是一個(gè)配置類 目的: 封裝對象-交給Spring容器管理
@Configuration
public class MybatisPlusConfig {
// @Bean 將方法的返回值對象,交給Spring容器管理
//MP分頁機(jī)制 Mysql分頁語句/Oracle分頁語句 為了實(shí)現(xiàn)功能復(fù)用 需要手動(dòng)配置
//根據(jù)數(shù)據(jù)庫類型不同 之后動(dòng)態(tài)的生成Sql MP才能調(diào)用分頁對象
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
//定義分頁攔截器對象
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MARIADB));
return interceptor;
}
}