方式一:分頁查詢
如果單純地進行分頁查詢,可以依靠PageQuery對象和templatePage封裝方法來實作.
@Override
public List<Match> findPage(int currentPage, int pageSize) {
// TODO Auto-generated method stub
PageQuery<Match> queryOfFindPage = new PageQuery<>();//建立BeetlSQL内置的PageQuery對象
queryOfFindPage.setPageNumber(currentPage);//設定目前頁碼
queryOfFindPage.setPageSize(pageSize);//設定查詢數量
matchDaoObj.templatePage(queryOfFindPage);//進行分頁查詢,調用dao對象繼承BaseMapp父類的方法'templatePage()',傳入參數為此前建立的PageQuery對象名。
List<Match> list = queryOfFindPage.getList();//分頁查詢完畢後,結果會傳回給PageQuery對象,我們通過PageQuery對象名.getList()的格式來擷取查詢結果。
return list;
}
方式二:模糊分頁查詢 需要手動計算查詢數量和頁數
這個方式是用Query對象的andLike+limit+select()三個方法結合SQLManager注入對象來實作的.
andLike代表拼接’like’語句,limit代表拼接’limit’語句,select代表查詢.
但需要手動計算查詢到的數量和頁數.
@Autowired
private SQLManager sqlManagerObj;
@GetMapping("/mysqltest")
public void findPageOfMysql() {
Query<MatchsInfo> queryObj = sqlManagerObj.query(MatchsInfo.class);
List<MatchsInfo> select = queryObj.andLike("matchName", "%甲%").limit(1, 10).select();
System.out.println(select.size());
for (int i = 0; i < select.size(); i++) {
System.out.println(select.get(i));
}
}
方式三:模糊分頁查詢 自動計算查詢數量和頁數
這個方式也是Query對象結合SQLManager注入對象來實作的,但是隻需要兩個Query對象的方法,andLike+page這兩個.
它會把結果傳回成一個PageQuery集合對象,你可以通過這個來獲得查詢到的數量和頁數.
@Autowired
private SQLManager sqlManagerObj;
@GetMapping("/mysqltest")
public void findPageOfMysql() {
Query<MatchsInfo> queryObj = sqlManagerObj.query(MatchsInfo.class);
PageQuery<MatchsInfo> pageQueryObj = queryObj.andLike("matchName", "%甲%").page(1, 10);
System.out.println(pageQueryObj.getTotalPage());
System.out.println(pageQueryObj.getTotalRow());
}