我这是springboot整合mybatis插件,我的数据库是mysql,我试过了sqlserver数据库用我这个不行,sqlserver的就别白费力气了,因为sqlserver里面压根没有limit,不多说上代码:
maven依赖
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>3.4.2</version>
</dependency>
在你配置数据源的文件里面配置一下:我这是yum文件,很多人的项目应该是properties文件
#分页插件
pageheloer:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
## 接下来在启动类注入一个:当然你不引入的话是取不到数据的
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("offsetAsPageNum", "true");
properties.setProperty("rowBoundsWithCount", "true");
properties.setProperty("reasonable", "true");
properties.setProperty("dialect", "mysql");
pageHelper.setProperties(properties);
return pageHelper;
}
## 几个对象实体和工具类
public class PageRequest {
private int pageNum;//当前页码
private int pageSize;//每页数量
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
/**
* 分页返回结果
* */
public class PageResult {
/**
* 当前页码
* */
private int pageNum;
/**
*每页数量
* */
private int pageSize;
/**
*记录总数
* */
private long totalSize;
/**
*页码总数
* */
private int totalPages;
/**
* 数据模型
*/
private List<?> content;
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public long getTotalSize() {
return totalSize;
}
public void setTotalSize(long totalSize) {
this.totalSize = totalSize;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public List<?> getContent() {
return content;
}
public void setContent(List<?> content) {
this.content = content;
}
}
/**
* 将分页信息封装到统一的接口
* @param pageRequest
* @param
* @return
*/
public class PageUtils {
public static PageResult getPageResult(PageRequest pageRequest, PageInfo<?> pageInfo) {
PageResult pageResult = new PageResult();
pageResult.setPageNum(pageInfo.getPageNum());
pageResult.setPageSize(pageInfo.getPageSize());
pageResult.setTotalSize(pageInfo.getTotal());
pageResult.setTotalPages(pageInfo.getPages());
pageResult.setContent(pageInfo.getList());
return pageResult;
}
}
上代码
xml文件
<!--测试分页插件-->
<select id="test" resultMap="BaseResultMap">
select * from t_personnel
</select>
mapper文件
//测试分页插件
List<Personnel> test();
service文件
//测试分页插件
PageResult testPageHelper(PageRequest pageRequest);
实现类
//测试分页插件
@Override
public PageResult testPageHelper(PageRequest pageRequest) {
return PageUtils.getPageResult(pageRequest,getPageInfo(pageRequest));
}
private PageInfo<Personnel> getPageInfo(PageRequest pageRequest) {
int pageNum = pageRequest.getPageNum();
int pageSize = pageRequest.getPageSize();
PageHelper.startPage(pageNum, pageSize);
List<Personnel> personnels = personnelMapper.test();
for(Personnel p:personnels){
System.out.println(p.getUsername());
}
return new PageInfo<Personnel>(personnels);
}
controller层
//测试分页插件
@RequestMapping(value ="/testPage",method = RequestMethod.POST)
public PageResult findPage(@RequestBody PageRequest pageRequest) {
return personnelService.testPageHelper(pageRequest);
}
至此mysql整合mybatis的分页结束,测试结果: