1、pom引入jar包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!--注意版本 2.6.1及以上不兼容-->
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.re</groupId>
<artifactId>r</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>r</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!--pagehelperjar包,引入后就不需要配置分页拦截器了-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
二、application.yml配置
# DataSource Config
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ldzy?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: root
mybatis:
mapper-locations: classpath*:/mapper/**Mapper.xml
configuration:
map-underscore-to-camel-case: true #字段小驼峰转换:tea_no 会转成teaNo
#分页配置
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: false
pageSizeZero: true
offsetAsPageNum: true
rowBoundsWithCount: true
params: count=countSql
三、编写实体类
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Teacher implements Serializable {
private Integer id;
private String teaNo;
private String teaName;
}
四、TeacherMapper.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="com.re.r.mapper.TeacherMapper">
<select id="queryByPage" resultType="com.re.r.pojo.Teacher">
SELECT
*
FROM
`tb_teacher`
<where>
<if test="teaName != null and teaName != ''">
AND tea_name = #{teaName}
</if>
</where>
</select>
</mapper>
五、TeacherMapper.java dao层
import com.re.r.pojo.Teacher;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author
* @since 2021-12-21
*/
@Mapper
public interface TeacherMapper {
public List<Teacher> queryByPage(Teacher userparm);
}
六、TeacherController.java
首先准备一个TableResult类
package com.re.r.pojo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 文件: TableResult
* 描述:
* 创建时间: 2021-12-22 13:50
*
* @author MSCIWANG
*/
@Data
public class TableResult<T> implements Serializable {
private List<T> rows;
private int totalCount;
private int pageCount;
public void setPageCount(Integer pageSize){
if(pageSize==null){
return;
}
if(totalCount % pageSize==0){
this.pageCount=totalCount/pageSize;
}
else
{
this.pageCount=totalCount/pageSize+1;
}
}
}
编写TeacherController 类
@RestController
public class TeacherController {
@Autowired
TeacherMapper teacherMapper;
/**
*
* @param pageNum 页数
* @param tname 老师名称
* @return
*/
@RequestMapping(value = "/getSomePerson")
public TableResult<Teacher> getSomePerson(@RequestParam(value = "pageNum",defaultValue="1") int pageNum,@RequestParam(value = "tname",defaultValue="") String tname ){
Teacher teacher=new Teacher();
teacher.setTeaName(tname);
PageHelper.startPage(pageNum,4);
List<Teacher> list=teacherMapper.queryByPage(teacher);
//将查询到的数据封装到PageInfo对象
PageInfo<Teacher> pageInfo=new PageInfo(list);
TableResult<Teacher> tableResult=new TableResult<>();
tableResult.setRows(pageInfo.getList());
tableResult.setTotalCount( Integer.parseInt(String.valueOf(pageInfo.getTotal())));
tableResult.setPageCount(pageInfo.getPageSize());
/*Map<String,Object> data= new HashMap<>();
data.put("rows",pageInfo.getList());
data.put("Total",pageInfo.getTotal());
data.put("PageCount",getaaa(Integer.parseInt(String.valueOf(pageInfo.getTotal())),pageInfo.getPageSize()));*/
return tableResult;
}
/**
* 获取总页数
* @param totalCount
* @param pageSize
* @return
*/
private int getaaa(Integer totalCount,Integer pageSize){
if(totalCount % pageSize==0){
return totalCount/pageSize;
}
else
{
return totalCount/pageSize+1;
}
}
}
七、测试
项目结构: