如果只是单表,那么分页查询就容易的多了
这里的@ModelAttribute注解可以将前端传过来的 current 和 size 字段映射到Page对象中
BaseController中
关联多表分页查询
PbBuildingController中
PbBuildingService
PbBuildingMapper
PbBuildingMapperxml
如果仅仅查列表而不需要分页,前端不需要传current和size参数,而后台不需要Page参数
如果Mybatis-Plus分页查询且不返回总数total
使用 // 不查询总记录数 pagesetSearchCount(false);
Mybatis-Plus分页查询不返回总数total
2、如何知道上面的,你还要知道MySql有一个分页语句叫limit,如:limit(1,10);前面一个参数是起始未知,后面一个是查询多少个。
3、Oracle的分页方法是嵌套子查询,需要用到rownum这个属性
Sql
Server是Top。
分页例子:
Oracle
select
from
(select
emp,rownum
rn
from
emp
where
rownum<9)
where
rn>3;
MySql
select
from
emp
limit
startIndex,maxNum针对上述思路,首先在 demomybatismodel下面新建一个名为PagenateArgs的分页参数实体类与一个名为SortDirectionEnum的枚举 类,里面包含当前页面索引pageIndex, 当前页展示业务记录数pageSize, pageStart属性表示从第几条开始,(pageStart=pageIndexpageSize)因为limit关键词用法是表示limit 起始条数(不包含),取几条,orderFieldStr排序字段,orderDirectionStr 排序方向,所以具体创建如下:
package davidmybatismodel;/ 分页参数实体类 /public class PagenateArgs { private int pageIndex; private int pageSize; private int pageStart; private String orderFieldStr; private String orderDirectionStr; public PagenateArgs() { // TODO Auto-generated constructor stub } public PagenateArgs(int pageIndex, int pageSize, String orderFieldStr, String orderDirectionStr) { thispageIndex = pageIndex; thispageSize = pageSize; thisorderFieldStr = orderFieldStr; thisorderDirectionStr = orderDirectionStr; pageStart = pageIndex pageSize; } public int getPageIndex() { return pageIndex; } public int getPageStart() { return pageStart; } public int getPageSize() { return pageSize; } public String orderFieldStr() { return orderFieldStr; } public String getOrderDirectionStr() { return orderDirectionStr; }}
package davidmybatismodel;/ 排序枚举 /public enum SortDirectionEnum { / 升序 / ASC, / 降序 / DESC}
完成上面的步骤以后在IVisitorOperation接口类中继续添加一个方法public List<Visitor> getListByPagenate(PagenateArgs args),这次的分页其实也就是在这个的基础上稍加改动即可,IVisitorOperation接口类 改动后如下所示:
package davidmybatisdemo;import javautilList;import davidmybatismodelPagenateArgs;import davidmybatismodelVisitor;import davidmybatismodelVisitorWithRn;public interface IVisitorOperation { / 基础查询 / public Visitor basicQuery(int id); / 添加访问者 / public int add(Visitor visitor); / 删除访问者 / public int delete(int id); / 更新访问者 / public int update(Visitor visitor); / 查询访问者 / public Visitor query(int id); / 查询List / public List<Visitor> getList(); / 分页查询List / public List<Visitor> getListByPagenate(PagenateArgs args); }
接下来改动VisitorMapperxml配置文件了,新增一个<select>节点id与参数类型参照前几章的方式配置好,如下此处新增的id就为getListByPagenate,配置好以后如下
<xml version="10" encoding="UTF-8"><!DOCTYPE mapper PUBLIC "-//mybatisorg//DTD Mapper 30//EN" ">
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)