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

做网站 嵌入支付室内设计师证书哪个含金量高

做网站 嵌入支付,室内设计师证书哪个含金量高,网站建设合同简单模板,58同城招聘网找工作附近一、前言 只要是干过后台系统的同学应该都做过分页查询吧#xff0c;前端发送带有页码#xff08;pageNum#xff09;和每页显示数量#xff08;pageSize#xff09;的请求#xff0c;后端根据这些参数来提取并返回相应的数据集。在SpringBoot框架中#xff0c;经常会使…一、前言 只要是干过后台系统的同学应该都做过分页查询吧前端发送带有页码pageNum和每页显示数量pageSize的请求后端根据这些参数来提取并返回相应的数据集。在SpringBoot框架中经常会使用MybatisPageHelper的方式实现这个功能。 但大家可能对分页合理化这个词有点儿陌生不过应该都遇到过因为它产生的问题。这些问题不会触发明显的错误所以大家一般都忽视了这个问题。那么啥是分页合理化我来举几个例子 它的定义分页合理化通常是指后端在处理分页请求时会自动校正不合理的分页参数以确保用户始终收到有效的数据响应。 1. 请求页码超出范围 假设数据库中有100条记录每页展示10条那么就应该只有10页数据。如果用户请求第11页不合理化处理可能会返回一个空的数据集告诉用户没有更多数据。开启分页合理化后系统可能会返回第10页的数据即最后一页的数据而不是一个空集。 2. 请求页码小于1 用户请求的页码如果是0或负数这在分页上下文中是没有意义的。开启分页合理化后系统会将这种请求的页码调整为1返回第一页的数据。 3. 请求的数据大小小于1 如果用户请求的数据大小为0或负数这也是无效的因为它意味着用户不希望获取任何数据。开启分页合理化后系统可能会设置一个默认的页面大小比如每页显示10条数据。 4. 请求的数据大小不合理 如果用户请求的数据大小非常大比如一次请求1000条数据这可能会给服务器带来不必要的压力。开启分页合理化后系统可能会限制页面大小的上限比如最多只允许每页显示100条数据。 二、为啥要设置分页合理化 其实上面那些问题对于后端来讲很合理页码和页大小设置不正确查询不出来值难道不合理吗唯一的问题就是如果一次性查询太多条数据服务器压力确实大但如果是产品要求的那也没办法呀真正让我不得不解决这个问题的原因是前端的一个BUG这个BUG是啥样的呢我来给大家描述一下。 1. BUG复现 我们先看看前端的分页组件 前端的这个分页组件大家应该很常见它需要两个参数总行数、每页行数。比如说现在总条数是6条每页展示5条那么会有2页没啥问题对吧。 那么现在我问一个问题我们切换到第二页把第二页仅剩的一条数据给删除掉会出现什么情况 理想情况页码自动切换到第1页并查询第一页的数据真实情况页码切换到了第1页但是查询不到数据这明显就是一个BUG 2. BUG分析 1. 用户切换到第二页前端发起了请求如http://localhost:8080/user/pageQuery?pageNum2pageSize5 此时第2页有一条数据 2. 用户删除第2页的唯一数据后前端发起查询请求但还是第2页的查询因为总数据的变化前端只能通过下一次的查询才能知道但此时数据查询为空 3. 虽然第二次查询的数据集为空但是总条数已经变化了只剩下5条前端分页组件根据计算得出只剩下一页所以自动切换到第1页 可以看出这个BUG是分页查询的一个临界状态产生的必现、中低频属于必须修复的那一类。不过这个BUG想甩给前端估计不行因为总条数的变化只有后端知道必须得后端修了。 三、设置分页合理化 咋一听这个BUG有点儿复杂但如果你使用的是PageHelper框架那么修复它非常简单只需要两行配置。在application.yml或application.properties中添加 pagehelper.helper-dialectmysql pagehelper.reasonabletrue 只要加了这两行配置这个BUG就能解决。因为配置是全局的如果你只想对单个查询场景生效那就在设置分页参数的时候加一个参数如下 PageHelper.startPage(pageNumber, pageSize, true); 四、分页合理化配置的原理说明 这个BUG如果要自己解决的话是不是感觉有点头痛了但是人家PageHelper早就想到这个问题了就像游戏开挂一样一个配置就解决了这个麻烦的问题。用的时候确实很爽但是我却有点担心这个配置现在解决了这个BUG会不会导致新的BUG呢如果真的出现了新BUG我应该怎么做呢所以我决定研究一下它的基础原理。 在com.github.pagehelper.Page类下找到了这段核心源码这段应该就是分页合理化的实现逻辑 // 省略其他代码 public PageE setReasonable(Boolean reasonable) {if (reasonable null) {return this;}this.reasonable reasonable;//分页合理化针对不合理的页码自动处理if (this.reasonable this.pageNum 0) {this.pageNum 1;calculateStartAndEndRow();}return this; } // 省略其他代码// 省略其他代码 /*** 计算起止行号 */ private void calculateStartAndEndRow() {this.startRow this.pageNum 0 ? (this.pageNum - 1) * this.pageSize : 0;this.endRow this.startRow this.pageSize * (this.pageNum 0 ? 1 : 0); } // 省略其他代码 还有一些代码我没贴比如PageInterceptor#intercept方法这里我整理了一下它的执行流程图如下 看了图解这套配置还挺清晰的懂了怎么回事儿用起来也就放心了。记得刚开始写代码时啥都希望有人给弄好了最好是拿来即用。但时间一长自己修过一堆BUG才发现只有自己弄明白的代码才靠谱什么都想亲手来。等真正搞懂了一些底层的东西才意识到要想造出好东西得先学会站在巨人的肩膀上。学习嘛没个头儿 文章转载自sum墨 原文链接https://www.cnblogs.com/wlovet/p/17926629.html 体验地址引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构
http://www.pierceye.com/news/830820/

相关文章:

  • 郑州搭建网站公司互联网公司网站建设的目的
  • 响应式视频网站什么是权重高的网站
  • 做教育网站挣钱我的网站域名是什么
  • django 网站开发实例哪里可以检测胎儿性别
  • 刷排名凡搜网站宝微信5000人接推广费用
  • 网站优化外包服务专业网站建设服务商
  • 江西企业网站建设费用wordpress正在执行例行维护_请一分钟后回来.
  • 苏宁推客如何做网站创建一个网站的步骤
  • 优化网站广告优化东莞美食网站建设报价
  • 单页网站的营销定制应用软件有哪些
  • 如何建立一个网站详细步骤品牌建设可以从哪方面入手
  • 杨浦做网站福州网站公司
  • 厦门网站建设工程汽车网站正在建设中模板
  • 关于网站规划建设方案书怎么制作官网
  • 网站域名注销流程昌邑微信网站建设公司
  • 如何做众筹网站wordpress手机投放广告
  • 贵阳制作网站的公司如何找友情链接
  • 苏州诶茵诶公司网站flash网站怎么制作
  • 域名申请网页制作网站建设珠海免费模板建站
  • 行情网免费网站大全wordpress 头像上传路径
  • 网站开发联系方式做网站如何提需求
  • 小程序定制团队seo顾问推推蛙
  • 徐州网站建设公司哪家好经典广告
  • 百度的官方网站wordpress提示插件安装
  • 网站的按钮怎么做 视频宁波网站建设用什么软件
  • 宜宾市做网站多少钱老板办公室装修效果图
  • 如何将网站挂载域名手机网站布局教程
  • 哪个网站可以做销售记录公司经营范围分类目录
  • dw网站的站点建设怎么百度做网站
  • 在家做网站设计国土局网站建设经验