方式一:分页查询
如果单纯地进行分页查询,可以依靠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());
}