当前位置:   article > 正文

Java自定义分页_java 自定义分页

java 自定义分页

分页VO工具类

  1. 根据自己的需求进行属性的修改
/**
 * @ClassName PageVo
 * @Description T0D0
 * @Author cc
 * @Date 2022/3/28 13:00
 * @Version 1.0
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageVo<T> {
    private Integer total;//总条数
    private List<T> dataList;//数据
    private Integer currentPage;//当前页数
    private Integer pageSize;//当前页面条数
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

Controller层

    @GetMapping("/page/search")
    public CommonResult search(@RequestParam(defaultValue = "1")Integer currentPage,
                             @RequestParam(defaultValue = "8") Integer pageSize,
                               @RequestParam(defaultValue = "") String keywords){
        PageVo<Spot> page = spotService.getPage(currentPage, pageSize,keywords);

        if(page!=null){
            return new CommonResult(SysContains.httpOk,"查询成功",page);
        }
        return new CommonResult(SysContains.queryFailed,"查询失败");
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Service层

 @Override
    public PageVo<Spot> getPage(Integer currentPage, Integer pageSize, String keywords) {
    //因为前端传过来的currentPage是从1开始,而数据库limit是从0开始,所以需要减一
        currentPage = currentPage - 1;
        Integer total = spotMapper.selectSpotCount();//根据自己需要,查询总条数
        List<Spot> dataList = spotMapper.getPage(currentPage, pageSize, keywords);
        PageVo<Spot> pageVo = new PageVo<>();
        pageVo.setTotal(total);//设置总条数
        pageVo.setDataList(dataList);//设置查询数据
        pageVo.setCurrentPage(currentPage + 1);//设置页面显示当前页,之前减了1,需要加上,反馈给前端
        pageVo.setPageSize(pageSize);//设置页面当前显示条数
        return pageVo;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

Mapper层

   <select id="getPage" resultType="com.cc.entity.Spot">
        select s.id,s.name,s.pic,s.introduction,s.duration,s.director,s.director_phone directorPhone,
        s.resource,s.address,s.created_time createdTime,s.remarks,s.is_hot isHot,s.created_user_id createdUserId from
        spot s
        <where>
            <if test="keywords !=null and keywords !=''">
                or `name` like '%' #{keywords} '%'
            </if>
            <if test="keywords !=null and keywords !=''">
                or `address` like '%' #{keywords} '%'
            </if>
        </where>
        limit #{currentPage},#{pageSize}
    </select>

    <select id="selectSpotCount" resultType="java.lang.Integer">
        select count(1) from spot
        <where>
            <if test="keywords!=null and keywords!=''">
                or address like '%' #{keywords} '%'
            </if>
            <if test="keywords!=null and keywords!=''">
               or `name` like '%' #{keywords} '%'
            </if>
        </where>
    </select>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/920776
推荐阅读
相关标签
  

闽ICP备14008679号