一、maven中引入依赖
< dependency>
< groupId> com.github.pagehelper</ groupId>
< artifactId> pagehelper-spring-boot-starter</ artifactId>
< version> 1.2.12</ version>
</ dependency>
二、创建PageCondition< T > 分页对象类
public class PageCondition < T> {
private Integer pageNum;
private Integer pageSize;
private T condition;
}
三、Dao层
List< Drug> findList ( Drug condition) ;
< select id = " findList" resultType = " edu.nchu.bootdemo.model.Drug" >
select
id,
drug_code drugCode,
drug_name drugName,
unit,
price,
update_time updateTime,
del_flag delFlag,
stock
from drug_info d
< where>
< if test = " drugCode!=null and drugCode!=' ' " >
or d.drug_code LIKE concat('%',#{drugCode},'%')
</ if>
< if test = " drugName!=null and drugName!=' ' " >
or d.drug_name LIKE concat('%',#{drugName},'%')
</ if>
< if test = " stock!=null and stock!=' ' " >
stock = #{stock},
</ if>
< if test = " unit!=null and unit!=' ' " >
or d.unit LIKE concat('%',#{unit},'%')
</ if>
< if test = " price!=null and price!=0" >
or d.price = price
</ if>
AND d.del_flag = "0"
</ where>
</ select>
四、service层
public PageInfo< Drug> page ( PageCondition< Drug> pageCondition) {
return PageHelper. startPage ( pageCondition. getPageNum ( ) , pageCondition. getPageSize ( ) )
. doSelectPageInfo ( ( ) - > drugDao. findList ( pageCondition. getCondition ( ) ) ) ;
}
五、Controller层
@PostMapping ( "/drug/find" )
public PageInfo< Drug> page ( @RequestBody PageCondition< Drug> pageCondition) {
return drugService. page ( pageCondition) ;
}
六、执行过程
查询第一页数据(显示5条记录)
前台提交的数据
{
"pageNum" : 1 ,
"pageSize" : 5 ,
"condition" : {
"drugCode" : "" ,
"drugName" : "" ,
"unit" : "" ,
"price" : ""
}
}
后台返回的数据
{
"total" : 11 ,
"list" : [
{
"id" : "1300774599675482112" ,
"drugCode" : "000002" ,
"drugName" : "碘伏" ,
"unit" : "瓶" ,
"price" : 5 ,
"updateTime" : "2020-09-06 11:30:58" ,
"delFlag" : "0" ,
"stock" : 98
} ,
{
"id" : "1300774716902084608" ,
"drugCode" : "000009" ,
"drugName" : "药" ,
"unit" : "盒" ,
"price" : 20 ,
"updateTime" : "2020-09-06 11:30:58" ,
"delFlag" : "0" ,
"stock" : 55
} ,
{
"id" : "1300937451849781248" ,
"drugCode" : "000004" ,
"drugName" : "藿香正气水" ,
"unit" : "盒" ,
"price" : 56 ,
"updateTime" : "2020-09-03 08:28:01" ,
"delFlag" : "0" ,
"stock" : 93
} ,
{
"id" : "1300937503041261568" ,
"drugCode" : "000005" ,
"drugName" : "藿香正气胶囊" ,
"unit" : "盒" ,
"price" : 44 ,
"updateTime" : "2020-09-02 13:45:00" ,
"delFlag" : "0" ,
"stock" : 66
} ,
{
"id" : "1301154120765411328" ,
"drugCode" : "000006" ,
"drugName" : "VC银翘片" ,
"unit" : "盒" ,
"price" : 16 ,
"updateTime" : "2020-09-02 13:44:51" ,
"delFlag" : "0" ,
"stock" : 88
}
] ,
"pageNum" : 1 ,
"pageSize" : 5 ,
"size" : 5 ,
"startRow" : 1 ,
"endRow" : 5 ,
"pages" : 3 ,
"prePage" : 0 ,
"nextPage" : 2 ,
"isFirstPage" : true ,
"isLastPage" : false ,
"hasPreviousPage" : false ,
"hasNextPage" : true ,
"navigatePages" : 8 ,
"navigatepageNums" : [
1 ,
2 ,
3
] ,
"navigateFirstPage" : 1 ,
"navigateLastPage" : 3
}
mybatis执行的sql语句
SELECT count ( 0 )
FROM drug_info d
WHERE d. del_flag = "0" ;
select id, drug_code drugCode, drug_name drugName, unit, price, update_time updateTime, del_flag delFlag, stock
FROM drug_info d
WHERE d. del_flag = "0"
LIMIT 5 ;
在mysql的执行结果
查询第三页的数据
前台提交的数据
{
"pageNum" : 3 ,
"pageSize" : 5 ,
"condition" : {
"drugCode" : "" ,
"drugName" : "" ,
"unit" : "" ,
"price" : ""
}
}
后台返回的数据
{
"total" : 12 ,
"list" : [
{
"id" : "1307575377127936000" ,
"drugCode" : "010012" ,
"drugName" : "绿箭仙丹" ,
"unit" : "丹" ,
"price" : 66 ,
"updateTime" : "2020-09-20 07:00:38" ,
"delFlag" : "0" ,
"stock" : 44
} ,
{
"id" : "1307580383189143552" ,
"drugCode" : "010013" ,
"drugName" : "益达仙丹" ,
"unit" : "丹" ,
"price" : 66 ,
"updateTime" : "2020-09-20 07:20:32" ,
"delFlag" : "0" ,
"stock" : 88
}
] ,
"pageNum" : 3 ,
"pageSize" : 5 ,
"size" : 2 ,
"startRow" : 11 ,
"endRow" : 12 ,
"pages" : 3 ,
"prePage" : 2 ,
"nextPage" : 0 ,
"isFirstPage" : false ,
"isLastPage" : true ,
"hasPreviousPage" : true ,
"hasNextPage" : false ,
"navigatePages" : 8 ,
"navigatepageNums" : [
1 ,
2 ,
3
] ,
"navigateFirstPage" : 1 ,
"navigateLastPage" : 3
}
mybatis执行的sql语句
SELECT count ( 0 )
FROM drug_info d
WHERE d. del_flag = "0" ;
select id, drug_code drugCode, drug_name drugName, unit, price, update_time updateTime, del_flag delFlag, stock
FROM drug_info d
WHERE d. del_flag = "0"
LIMIT 10 , 5 ;
在mysql的执行结果