Mybatis的分页查询

pagehelper:只适合小规模数据的分页操作
依赖

<!-- pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>

<!-- druid数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>

application.properties

#mysql
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/txdyl?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.initialSize=20
spring.datasource.minIdle=10
spring.datasource.maxActive=100


#Paging assistant configuration
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

Controller层部分

/**
* 进入个人通讯录界面-分页查询数据,
*
* @param
* @return
*/
@PostMapping("/queryAddressBookbyPage")
@ApiOperation(value = "进入个人通讯录界面-分页查询数据")
public ResponseResult queryAddressBookbyPage(@RequestBody RequestPam pam) {
("start AddressBookController.queryAddressBookbyPage");
try {
Page page = addressBookService.queryAddressBookbyPage(pam);
return ResponseResult.success(page, ConstantsUtil.QUERY_SUCCESS);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return ResponseResult.error(ConstantsUtil.OPERATE_ERROR);
}
}

service层

public Page queryAddressBookbyPage(RequestPam pam) {
int pageNum = pam.getPageNo();
int pageSize = pam.getSize();
PageHelper.startPage(pageNum, pageSize);
List<AddressBookPojo> list = addressBookPojoMapper.queryAddressBookbyPage(pam);
for (AddressBookPojo addressBookPojo : list) {
addressBookPojo.setAllDeptName(addressBookPojo.getAllDeptName().replaceAll("-", " "));
}
return PageUtils.getPageResult(pam, new PageInfo<AddressBookPojo>(list));
}

Page类

public class Page implements Serializable {
private static final long serialVersionUID = 1L;
private int pageNo;//当前页
private int pageSize;//当前页大小
private long totalSize;//记录总数
private int totalPages;//页码总数
private Object value;

/**省略set()\ get() **/

public void setPageDetail(Object value, Integer totalNum, Integer pageNo, Integer pageSize) {
this.value = value;
this.totalSize = totalNum;
this.pageNo = pageNo;
this.pageSize = pageSize;
this.totalPages = totalNum / pageSize + 1;
}
}

PageUtils

public class PageUtils {
public static Page getPageResult(RequestPam pam, PageInfo<?> pageInfo) {
Page page = new Page();
page.setPageNo(pageInfo.getPageNum());
page.setPageSize(pageInfo.getPageSize());
page.setTotalSize(pageInfo.getTotal());
page.setTotalPages(pageInfo.getPages());
page.setValue(pageInfo.getList());
return page;
}
}

Pagehelper分页查询_spring