I am springboot integrated mybatis plug-in, my database is mysql, I tried the sqlserver database with me, this is not okay, don't try it for sqlserver, because there is no limit in sqlserver, let's not talk about the code:
maven dependency
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>3.4.2</version>
</dependency>
Configure it in the file where you configure the data source: I am a yum file, and many people's projects should be properties files
#分页插件
pageheloer:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
## Next, inject one in the startup class: of course, if you do not introduce it, you will not get the data
@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;
}
## Several object entities and tools
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;
}
}
Code
xml file
<!--测试分页插件-->
<select id="test" resultMap="BaseResultMap">
select * from t_personnel
</select>
mapper file
//测试分页插件
List<Personnel> test();
service file
//测试分页插件
PageResult testPageHelper(PageRequest pageRequest);
Implementation class
//测试分页插件
@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 layer
//测试分页插件
@RequestMapping(value ="/testPage",method = RequestMethod.POST)
public PageResult findPage(@RequestBody PageRequest pageRequest) {
return personnelService.testPageHelper(pageRequest);
}
At this point, the paging of mysql integration mybatis is over, and the test results: