1、引用pom
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>2.1-gamma</version>
</dependency>
2、編寫配置類
package com.forezp.config;
import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;
@Configuration
public class PageHelperConfig {
//配置mybatis的分頁插件pageHelper
@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"); //配置mysql數據庫的方言
pageHelper.setProperties(properties);
return pageHelper;
}
}
2、編寫controller
@PostMapping(value="/queryAll")
public Pages<Position> queryAll(@RequestBody Position position,
HttpServletRequest request){
Page page1 = new Page(Integer.parseInt(request.getHeader("current")==null?"1":request.getHeader("current"))
,Integer.parseInt(request.getHeader("size")==null?"10":request.getHeader("size")));
Pages<Position> page = positionService.queryAll(page1,position);
return page;
}
3、編寫service
@Autowired
private PositionMapper positionMapper;
@Override
public Pages<Position> queryAll(Page page1, Position position) {
PageHelper.startPage(page1.getCurrent(), page1.getSize());
EntityWrapper wrapper = new EntityWrapper();
wrapper.like("position_name",position.getPositionName(), SqlLike.RIGHT);
List<Position> items = positionMapper.selectList(wrapper);
Integer count = positionMapper.selectCount(wrapper);
Pages<Position> pages = new Pages<Position>(page1.getCurrent(), page1.getSize(),count);
pages.setItems(items);
return pages;
}
4、編寫Pages
package com.forezp.util;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("分頁工具")
public class Pages<T> {
// 當前頁
@ApiModelProperty(value="當前頁")
private Integer currentPage = 1;
// 每頁顯示的總條數
@ApiModelProperty(value="每頁顯示的條數")
private Integer limit = 10;
// 總條數
@ApiModelProperty(value="總條數")
private Integer totalNum;
// 是否有下一頁
@ApiModelProperty(value="是否有下一頁")
private Integer isMore;
// 總頁數
@ApiModelProperty(value="總頁數")
private Integer totalPage;
// 開始索引
@ApiModelProperty(value="開始索引")
private Integer startIndex;
// 分頁結果
@ApiModelProperty(value="分頁結果")
private List<T> items;
public Pages() {
super();
}
public Pages(Integer currentPage, Integer limit, Integer totalNum) {
super();
this.currentPage = currentPage;
this.limit = limit;
this.totalNum = totalNum;
this.totalPage = (this.totalNum+this.limit-1)/this.limit;
this.startIndex = (this.currentPage-1)*this.limit;
this.isMore = this.currentPage >= this.totalPage?0:1;
}
public List<T> getItems() {
return items;
}
public void setItems(List<T> items) {
this.items = items;
}
}