一、各版本说明
Mybatis-plus用3.0.6,这个目前是最新的版本,2.x的版本实现分页和这个不一样
二、bootstrap-table 的js配置(按照红色框依次说明)
1. url为空,为避免bootstarpTable初始化的时候就访问Controller,因为这个时候可能queryParams中的参数对应的select框没有初完成。
2. sidePagination写“server”,会从服务器端进行分页,pageNumber和pageSize为默认时要显示页数和每页显示多少条目。
3. queryParams为每次查询传递的参数,
4. onPageChange为table的footer变化时(包括每页显示条目数量变化和页数变化)会触发的方法,在这个方法里面我调用了updateTableQueryOptions方法,这个方法更新了queryParams、pageNumber、pageSize、url。每更新一次url为访问对应的controller,pageNumber和pageSize在这个地方之前 用的是offset和limit,用这个两个会有问题。
5. 对表的查询直接调用updateTableQueryOptions(10,1);就可以进行查询了。
图1.boostrap-table 的js配置三、后台代码(在Mybatis-plus3.0.6正常运行的情况下只介绍分页相关的代码)
1. Page和IPage分别为 下面两个包:
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
2. Page和IPage<Object>对应的属性见图6,在查询的时候传入的page中有对应的size(每页显示条目数)和current(当前显示第几页),mapper查询出的结果中会先查询条目总数放到total属性中,查询出来的记录放到records属性中,见图6。
3. controller调用Service再调用mapper,见图3,4,5。
4. 由于bootstrapTable的分页属性和IPage<Object>对应的属性不一样需要进行转换一下,和bootstrapTable对应的属性见图7,转换方法见图8,转换后属性对应pageNumber、pageSize、total、rows为bootstrapTable对应的属性就可以显示对应的分页了。
图2. 对应Controller图3. 对应Service
图4. 对应mapper
1. 和正常的xml查询一样不需要修改
图5. mapper对应的xml图6. page和IPage<object>对应的属性
图7. 和boostrapTable对应的页面属性
图8. 对应的属性转换
图9. 转换后的属性
网友评论