为什么要引入pagehelper(这里代码简写)
原始写法计算起始页 (page-1)*pageSize,pageSize
结束页 pageSize
select 字段名称..... from 表名 limit 起始页,结束页
有个这个以后就不用这么写了直接使用下面的方法即可。
(1)导入pom.xml依赖
<!--父级项目依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
<fastjson_version>1.2.28</fastjson_version>
<!--mybatis-->
<mybatis-spring-boot-starter>2.0.0</mybatis-spring-boot-starter>
<!--alibaba数据源-->
<alibaba>1.0.29</alibaba>
<!--mysql-->
<mysql>5.1.47</mysql>
<pagehelper>1.2.5</pagehelper>
</properties>
<dependencies>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper}</version>
</dependency>
<!--web支持的jar springboot的启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${alibaba}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot-starter}</version>
</dependency>
</dependencies>
(2)编写配置文件application.yml
# 指定端口
spring:
server:
port: 8999
# 分页配置
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
#mysql连接
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
url: jdbc:mysql://localhost:3306/ems?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
mybatis:
type-aliases-package: springsecurity.entity
mapper-locations: classpath:com/baidu/mapper/*.xml
(2)编写实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class log {
private Integer id;
private String username;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date;
private String operation;
}
(3)编写dao mapper层
@Mapper
public interface logDao(){
List<log> queryAll();
}
(4)编写dao的实现logDaoImpl.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="springsecurity.Dao.logMapper">
<insert id="add" useGeneratedKeys="true" parameterType="log">
insert into log value(#{id},#{username},#{date},#{operation})
</insert>
<select id="queryAll" resultType="springsecurity.entity.log">
select * from log
</select>
</mapper>
(5)编写server
public interface logService {
PageInfo<log> listUser(int currentPage, int pageSize);
}
(6)编写serverImpl
@Service
@Transactional
public class logServeImpl implements logService{
@Autowired
private logMapper logMapper;
@Override
public PageInfo<log> listUser(int pageNum, int pageSize) {
PageHelper.startPage(pageNum,pageSize);
// 查询数据库
List<log> userDOList = logMapper.queryAll();
// UserDO->UserVO...
PageInfo pageInfo = new PageInfo(userDOList);
return pageInfo;
}
}
(7)编写controller
@RestController
@RequestMapping(value = "log")
public class logController {
private logService logService;
@Autowired
public logController(springsecurity.service.serviceImpl.logService logService) {
this.logService = logService;
}
/**
参数说明
page 当前页数
pageSize 一页展示几条
**/
@GetMapping(value = "/logs")
public List<log> queryList(@RequestParam(value = "page",required = false,defaultValue ="1") int page,@RequestParam(value = "pageSize",required = false,defaultValue = "3") int pageSize){
final PageInfo<log> logPageInfo = logService.listUser(page, pageSize);
final int nextPage=logPageInfo.getNextPage();
logPageInfo.getTotal();
System.out.println("查询出来的条数"+nextPage);
System.out.println("总条数"+total);
return logPageInfo.getList();
}
}
(8)测试 http://localhost:8999/log/logs
![](https://img-blog.csdnimg.cn/83e7a97f054c4c5cbd24616c25217f0b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oqK5p-E,size_20,color_FFFFFF,t_70,g_se,x_16)