当前位置: 首页 > news >正文

wordpress迁移后地址没变晋中网站seo

wordpress迁移后地址没变,晋中网站seo,可以做试卷并批改的网站,管理系统的组成一 自己封装Page对象实现 博客链接 二 使用sql实现分页 2.1 场景分析 前段传递给给后台什么参数? 当前页码currentPage每页显示条数pageSize 后台给前端返回什么数据? 当前页数据List总记录数totalCount 2.2 前段代码 <template><el-paginationsize-change&q…

一 自己封装Page对象实现

博客链接

二 使用sql实现分页

2.1 场景分析

  • 前段传递给给后台什么参数?
    • 当前页码currentPage
    • 每页显示条数pageSize
  • 后台给前端返回什么数据?
    • 当前页数据List
    • 总记录数totalCount

2.2 前段代码

<template><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage":page-sizes="[5, 10, 15, 20]":page-size="5"layout="total, sizes, prev, pager, next, jumper":total="totalCount"></el-pagination>
</template>
<script>export default {methods: {handleSizeChange(val) {//console.log(`每页 ${val} 条`);// 重新设置每页显示的条数this.pageSize = val;this.selectAll();},handleCurrentChange(val) {// console.log(`当前页: ${val}`);// 重新设置当前页码this.currentPage = val;this.selectAll();}},data() {return {// 当前页码currentPage: 1,// 总记录数totalCount: 100,// 每页显示条数pageSize: 5,//接收当前页数据集合tableData:[]};},methods:{// 分页查询selectAll(){axios({method:"get",url:'后端接口地址',}).then(response => {//设置表格数据this.tableData = response.data.rows;//设置总记录数this.totalCount = response.data.totalCount})}}}
</script>

2.3 后端代码

PageBean
// 分页查询JavaBean
public class PageBean<T> {// 总记录数private int totalCount;// 当前页数据private List<T> rows;get,set...
}
mapper
// 分页查询
@Select("select * from 表名 limit #{begin} , #{size}")
List<T> selectByPage(@Param("begin") int begin,@Param("size") int size);// 查询总记录数
@Select("select count(*) from 表名")
int selectTotalCount();
service
// 分页查询 currentPage:当前页码  pageSize:每页展示条数
PageBean<T> selectByPage(int currentPage,int pageSize);
impl
@Override
public PageBean<T> selectByPage(int currentPage,int pageSize){// 计算开始索引int begin = (currentPage - 1) * pageSize;// 计算查询条目数int size = pageSize;// 查询当前页数据List<T> rows = mapper.selectByPage(begin,size);// 查询总记录数int totalCount = mapper.selectTotalCount();// 封装PageBean对象PageBean<T> pageBean = new PageBean<>();pageBean.setRows(rows);pageBean.setTotalCount(totalCount);return pageBean;
}
controller
@GetMapping("/selectAll")
public AjaxResult getApproveDataRes(ImportDataGetDto importDataGetDto){//接收前段传递请求参数实体importDataGetDtoint currentPage = importDataGetDto.getCurrentPage();int pageSize = importDataGetDto.getPageSize();PageBean<T> pageBean = mapper.selectByPage(currentPage,pageSize)return pageBean;
}

三 使用PageHelper插件

PageHelper官网

3.1 导入依赖

<dependencies><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.3</version></dependency>
</dependencies>

3.2 application.yml

pagehelper:# 设置方言,此处指定 MySQL 数据库helper-dialect: mysql# 是否启动合理化,默认是 false。# 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages(最大页数)会查询最后一页。# 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据reasonable: true# 是否支持接口参数来传递分页参数,默认falsesupport-methods-arguments: true# 为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值params: count=countSql# 默认值为 false,当该参数设置为 true 时,如果 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是 Page 类型)page-size-zero: true

3.3 使用

/**
* service实现类
* @param pageNumber    页码
* @param pageSize      每页显示数目
*/
public PageInfo<T> list(Integer pageNumber, Integer pageSize) { // 设置分页PageHelper.startPage(pageNumber, pageSize);// 查询用户角色列表(需要分页的查询)List<T> list = userRoleService.queryList();PageInfo<T> pageInfo = new PageInfo<>(list);return pageInfo;
)

注意:PageHelper.startPage(页码, 每页显示数目); 这一句代码,必须放在需要分页的查询语句之前,否则会分页不生效

3.4 分页失效情况

分页设置与需要分页的查询之间存在其他查询,如下代码是一个错误示范,虽然在方法的开头设置了分页,但因为在【查询用户角色列表】之前,多查了一步【查询用户信息】,此时实际上分页针对的是【查询用户信息】进行分页,而并非对【查询用户角色列表】进行分页。

public PageInfo<UserRole> list(Integer pageNumber, Integer pageSize, String userId) {// 设置分页PageHelper.startPage(pageNumber, pageSize);// 查询用户信息User user = userService.findById(userId);// 查询用户角色列表(需要分页的查询)List<UserRole> list = userRoleService.queryList();PageInfo<UserRole> pageInfo = new PageInfo<UserRole>(list);return pageInfo;
)

注意:startPage会寻找最近的一个查询方法执行分页

在需要分页的查询后才设置分页,如下代码是一个错误示范,在【查询用户角色列表】后才进行分页设置,因为已进行的所有数据的查询,所以此时再设置分页已无任何意义,自然会分页失效

public PageInfo<UserRole> list(Integer pageNumber, Integer pageSize) {// 查询用户角色列表(需要分页的查询)List<UserRole> list = userRoleService.queryList();// 设置分页PageHelper.startPage(pageNumber, pageSize);PageInfo<UserRole> pageInfo = new PageInfo<UserRole>(list);return pageInfo;
)

3.5 返回参数说明

//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集重要,通过getList获取结果集
private List<T> list;//前一页
private int prePage;
//下一页
private int nextPage;//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;
//导航条上的第一页
private int navigateFirstPage;
//导航条上的最后一页
private int navigateLastPage;

3.6 自定义返回参数

//使用默认分页时
PageHelper.startPage(page, size);
List<DataBean> beans = mapper.selectByQuery(express);
return new PageInfo<>(beans);

根据上述代码可以发现,想要进行自定义分页的话,只需要重新定义一个PageInfo就可以了。保留当前页、每页数量、当前页数量、总记录数、总页数字段,其他参数全部干掉,拷贝下PageInfo,在实体目录下新建个PageBean,把PageInfo源码丢进去,删掉多余的参数就OK了

public class PageBean<T> {private static final long serialVersionUID = 1L;//当前页private int pageNum;//每页的数量private int pageSize;//当前页的数量private int size;//总记录数private long total;//总页数private int pages;//结果集private List<T> list;get,set...
}

然后分页代码把PageInfo改成自己的PageBean

PageHelper.startPage(page, size);
List<DataBean> beans = mapper.selectByQuery(express);
return new PageBean<>(beans);

四 使用PagedListHolder类

PagedListHolderSpring Framework中的一个分页辅助类,用于对列表进行分页显示和管理。它可以将一个列表对象进行分页处理,并提供了一些方法,用于管理分页的相关信息。使用PagedListHolder可以方便地对列表进行分页处理,包括获取当前页的数据、切换到下一页或上一页、设置每页显示的记录数等操作。它还提供了一些其他的方法,如获取总页数、获取当前页码等。

代码演示

前端(ElmentUI分页组件)
<template><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage":page-sizes="[5, 10, 15, 20]":page-size="pageSize"layout="total, sizes, prev, pager, next, jumper":total="totalCount"></el-pagination>
</template>
<script>export default {methods: {handleSizeChange(val) {//console.log(`每页 ${val} 条`);// 重新设置每页显示的条数this.pageSize = val;this.selectAll();},handleCurrentChange(val) {// console.log(`当前页: ${val}`);// 重新设置当前页码this.currentPage = val;this.selectAll();}},data() {return {// 当前页码currentPage: 1,// 总记录数totalCount: 0,// 每页显示条数pageSize: 5,//接收当前页数据集合tableData:[]};},methods:{/*分页查询*/handleSizeChange(val) {console.log(`每页 ${val}`);// 重新设置每页显示的条数this.pageSize = val;this.selectAll();},handleCurrentChange(val) {console.log(`当前页: ${val}`);// 重新设置当前页码this.currentPage = val;this.selectAll();},// 分页查询selectAll(){axios({method:"get",url:'后端接口地址',}).then(response => {//设置表格数据this.tableData = response.data.rows;//设置总记录数this.totalCount = response.data.total})}}}
</script>
后端

dto实体

@Data
public class ApproveGetDto {...// 当前页码private Integer currentPage;// 每页展示条数private Integer pageSize;
}

vo实体

@Data
public class ApproveGetRes<T> {...//分页查询:总记录数private Long total;//分页查询:当前页数据private T rows;
}

controller

 @GetMapping("/getApproveDataRes")public AjaxResult getApproveDataRes(ApproveGetDto approveGetDto ){// 通过前端传递参数调用service获取数据List<ApproveGetRes> approveGetRes= lsjsService.getApproveDataRes(approveGetDto);// 设置要进行分页处理的数据源PagedListHolder<ApproveGetRes> plh = new PagedListHolder<>(approveGetRes);// 设置每页显示的记录数plh.setPageSize(approveGetDto.getPageSize());// 设置当前显示的页码,0代表第一页plh.setPage(approveGetDto.getCurrentPage()-1);// 创建vo对象ApproveGetRes dataRes = new ApproveGetRes();// 设置vo对象的总条数dataRes.setTotal(Long.valueOf(approveDataRes.size()));// plh.getPageList():获取当前页的数据列表dataRes.setRows(plh.getPageList());return AjaxResult.success("返回成功", dataRes);}

方法解释

// 1. 设置要进行分页处理的源列表
List<ApproveGetRes> approveGetRes= lsjsService.getApproveDataRes(approveGetDto);
PagedListHolder<ApproveGetRes> pagedListHolder = new PagedListHolder<>(approveGetRes);
// 2. 设置每页显示的记录数
pagedListHolder.setPageSize(2);
// 3. 设置当前显示的页码
pagedListHolder.setPage(0);
// 4. 获取当前页的数据列表
List<String> currentPageData = pagedListHolder.getPageList();
// 5. 切换到下一页
pagedListHolder.nextPage();
// 6. 切换到上一页
pagedListHolder.previousPage();
// 7. 获取总页数
int totalPages = pagedListHolder.getPageCount();
// 8. 获取当前页码
int currentPage = pagedListHolder.getPage();
// 9. 判断当前页是否为第一页
boolean isFirstPage = pagedListHolder.isFirstPage();
// 10. 判断当前页是否为最后一页
boolean isLastPage = pagedListHolder.isLastPage();
http://www.15wanjia.com/news/40290.html

相关文章:

  • 温州h5建站电子商务网站设计方案
  • 泉州建设网站公司百度竞价推广怎么做
  • 网站首页特效付费推广
  • 模板网站官网苏州优化排名seo
  • 烟台电子商务网站网站seo查询站长之家
  • b2c商城用户的操作流程和作用是什么多少关键词排名优化软件
  • 集团酒店网站建设如何查询域名注册人信息
  • 学雷锋 做美德少年网站黑科技引流推广神器怎么下载
  • 请稍后重试(3008)信息如何优化上百度首页
  • 北京网站建设建站公司鸡西网站seo
  • 中国世界排名前500大学移投界seo
  • 深圳网站开发网站杭州上城区抖音seo有多好
  • 掌上乌鲁木齐app下载seo免费优化网站
  • wordpress插件获取数据库google 优化推广
  • 万网站长it菜鸡网seo
  • 刚做的网站怎么才能搜索到windows优化软件
  • 郑州做网站九零后百度竞价是什么意思
  • 房山住房和城乡建设委员会网站找客户的十大方法
  • 网站开发工程师的经验网络营销策略存在的问题
  • 用pageadmin做的网站用什么虚拟主机号怎么找需要推广的商家
  • 河源定制网站建设推广手机建站
  • 菜鸟制作个人网站网页实例域名排名查询
  • 什么网站可以做时间加减app开发流程
  • 广州网站建设怎么做营销推广方案
  • 做网站开麻烦吗网站怎么推广
  • 日本一级做a在线播放免费视频网站网络促销的方法有哪些
  • 做网站的市场有那么大吗北京seo相关
  • 广州公司注册网站官网网络营销渠道的特点
  • 网站头图设计关键词排名点击软件工具
  • 网页突然打不开是什么原因郑州推广优化公司