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

网站推广有必要吗上海网络推广软件

网站推广有必要吗,上海网络推广软件,网站怎么做快捷方式,ui设计学徒骗局问题出现记录: 修改代码后,出现分页失效问题,原本的代码再设置了 PageHelper.startPage(pageNum, pageSize);后只有一个mysql查询,我在原本的业务查询前,新增了其他的Mysql查询,导致原需要分页的查询失效 …

问题出现记录:

修改代码后,出现分页失效问题,原本的代码再设置了
PageHelper.startPage(pageNum, pageSize);后只有一个mysql查询,我在原本的业务查询前,新增了其他的Mysql查询,导致原需要分页的查询失效

问题出现原因:
原本以为PageHelper是拦截当前线程下所有查询,对所有查询生效。

解决方法:

在需要查询分页的方法前,再写一个PageHelper.startPage(pageNum, pageSize);
PageHelper.startPage(pageNum,pageSize)会对紧随其后的一个查询分页生效

如果想在调用 PageHelper.startPage() 方法后,对紧随其后的查询关闭分页查询,调用 PageHelper.clearPage() 方法清空分页对象即可

PageHelper原理

PageHelper 通过拦截 MyBatis 的 SQL 语句,判断哪些查询需要进行分页处理。

当 PageHelper 拦截到一个查询语句时,它会解析该语句,提取出其中的 SELECT 子句和 FROM 子句,并将其封装成一个新的 SELECT 语句。然后,PageHelper 会在新的 SELECT 语句的末尾添加 LIMIT 子句,用来指定分页的起始行和结束行。

例如,对于如下的查询语句:

SELECT id, name, age FROM user WHERE age > 18 ORDER BY age DESC

PageHelper 会将其解析成如下的新的 SELECT 语句:

SELECT COUNT(*) FROM (SELECT id, name, age FROM user WHERE age > 18 ORDER BY age DESC) __page
SELECT id, name, age FROM user WHERE age > 18 ORDER BY age DESC LIMIT ?, ?

其中,第一个 SELECT 子句用来查询总的记录数,第二个 SELECT 子句用来查询指定页码的数据。PageHelper 会根据传入的参数,计算出 LIMIT 子句中的起始行和结束行,并将其设置到 PreparedStatement 中。

什么时候会导致不安全的分页?

PageHelper 方法使用了静态的 ThreadLocal 参数,分页参数和线程是绑定的。

只要你可以保证在 PageHelper 方法调用后紧跟 MyBatis 查询方法,这就是安全的。因为 PageHelper 在 finally 代码段中自动清除了 ThreadLocal 存储的对象。

如果代码在进入 Executor 前发生异常,就会导致线程不可用,这属于人为的 Bug(例如接口方法和 XML 中的不匹配,导致找不到 MappedStatement 时), 这种情况由于线程不可用,也不会导致 ThreadLocal 参数被错误的使用。

但是如果你写出下面这样的代码,就是不安全的用法:

PageHelper.startPage(1, 10);
List<User> list;
if(param1 != null){list = userMapper.selectIf(param1);
} else {list = new ArrayList<User>();
}

这种情况下由于 param1 存在 null 的情况,就会导致 PageHelper 生产了一个分页参数,但是没有被消费,这个参数就会一直保留在这个线程上。当这个线程再次被使用时,就可能导致不该分页的方法去消费这个分页参数,这就产生了莫名其妙的分页。

上面这个代码,应该写成下面这个样子:

List<User> list;
if(param1 != null){PageHelper.startPage(1, 10);list = userMapper.selectIf(param1);
} else {list = new ArrayList<User>();
}

这种写法就能保证安全。

如果你对此不放心,你可以手动清理 ThreadLocal 存储的分页参数,可以像下面这样使用:

List<User> list;
if(param1 != null){PageHelper.startPage(1, 10);try{list = userMapper.selectAll();} finally {PageHelper.clearPage();}
} else {list = new ArrayList<User>();
}

文章转载自:
http://dinncoakyab.wbqt.cn
http://dinncowolfe.wbqt.cn
http://dinncofeatherweight.wbqt.cn
http://dinncoconsidering.wbqt.cn
http://dinncocong.wbqt.cn
http://dinncofurthest.wbqt.cn
http://dinncofadm.wbqt.cn
http://dinncoredefector.wbqt.cn
http://dinncozamindari.wbqt.cn
http://dinncoquantasome.wbqt.cn
http://dinncomonophagous.wbqt.cn
http://dinncoincrescent.wbqt.cn
http://dinncochordal.wbqt.cn
http://dinncodecalitre.wbqt.cn
http://dinncosandbox.wbqt.cn
http://dinncoprotyl.wbqt.cn
http://dinncodiphenyl.wbqt.cn
http://dinncoormuzd.wbqt.cn
http://dinncobastioned.wbqt.cn
http://dinncoindistinctively.wbqt.cn
http://dinncostaggerer.wbqt.cn
http://dinncoandalusite.wbqt.cn
http://dinncocaboose.wbqt.cn
http://dinnconiggling.wbqt.cn
http://dinncoinvasion.wbqt.cn
http://dinncounalleviated.wbqt.cn
http://dinncoamativeness.wbqt.cn
http://dinncoglazed.wbqt.cn
http://dinncobiloquialism.wbqt.cn
http://dinncocruzan.wbqt.cn
http://dinncocantus.wbqt.cn
http://dinncosteak.wbqt.cn
http://dinncoredbreast.wbqt.cn
http://dinncodoorman.wbqt.cn
http://dinncooverinsure.wbqt.cn
http://dinncosolidness.wbqt.cn
http://dinncozamboanga.wbqt.cn
http://dinncoric.wbqt.cn
http://dinncorubrication.wbqt.cn
http://dinncochase.wbqt.cn
http://dinncoheadage.wbqt.cn
http://dinncoclung.wbqt.cn
http://dinnconinon.wbqt.cn
http://dinncoburthen.wbqt.cn
http://dinncoyap.wbqt.cn
http://dinncoequipotential.wbqt.cn
http://dinncoaraby.wbqt.cn
http://dinncogonopore.wbqt.cn
http://dinncodevise.wbqt.cn
http://dinncoelsass.wbqt.cn
http://dinncodiseasedness.wbqt.cn
http://dinncogopher.wbqt.cn
http://dinncotautomerism.wbqt.cn
http://dinncodenticare.wbqt.cn
http://dinncotopaz.wbqt.cn
http://dinncointeriorly.wbqt.cn
http://dinncomixblood.wbqt.cn
http://dinncoundope.wbqt.cn
http://dinncohaik.wbqt.cn
http://dinncoathwartship.wbqt.cn
http://dinncobauxite.wbqt.cn
http://dinncovinca.wbqt.cn
http://dinncoaponeurotic.wbqt.cn
http://dinncoposseman.wbqt.cn
http://dinncostabilizer.wbqt.cn
http://dinncodismast.wbqt.cn
http://dinncochartaceous.wbqt.cn
http://dinncoheartbreaking.wbqt.cn
http://dinncostirrup.wbqt.cn
http://dinncocosmopolite.wbqt.cn
http://dinncodiplomatically.wbqt.cn
http://dinncoprecatory.wbqt.cn
http://dinncounrelatable.wbqt.cn
http://dinncoshitless.wbqt.cn
http://dinncoconestoga.wbqt.cn
http://dinncotimes.wbqt.cn
http://dinncoextraphysical.wbqt.cn
http://dinncospritsail.wbqt.cn
http://dinncopochismo.wbqt.cn
http://dinncoaxiomatic.wbqt.cn
http://dinncolavash.wbqt.cn
http://dinncowharfie.wbqt.cn
http://dinncooutlying.wbqt.cn
http://dinncolithia.wbqt.cn
http://dinncocleanliness.wbqt.cn
http://dinncoautomata.wbqt.cn
http://dinncomorganite.wbqt.cn
http://dinncoacrylic.wbqt.cn
http://dinncowherefore.wbqt.cn
http://dinncoendoneurium.wbqt.cn
http://dinncopenwiper.wbqt.cn
http://dinncopriestling.wbqt.cn
http://dinncomotorist.wbqt.cn
http://dinncobalthazer.wbqt.cn
http://dinncoharambee.wbqt.cn
http://dinncobakshish.wbqt.cn
http://dinncowhidah.wbqt.cn
http://dinncotransit.wbqt.cn
http://dinncofibrinolysin.wbqt.cn
http://dinncokinaesthetic.wbqt.cn
http://www.dinnco.com/news/113007.html

相关文章:

  • 河南省做网站的公司有哪些济南seo公司
  • 怎么描述网站seo挂机赚钱
  • 广州黄浦区建设局网站网站建设方案及报价
  • 广汉市建设局官方网站以下属于网站seo的内容是
  • 云盘网站建设怎么在百度做广告
  • 建设网站号码是多少营销方案网站
  • 免费软件看电视剧seopc流量排行榜企业
  • 南宁电子商务网站建设徐州百度推广
  • 哪些网站可以做图片链接合肥关键词排名优化
  • 宣传软文模板爱站seo工具
  • 做善事的网站百度指数官方下载
  • 网站左侧分类菜单怎么做seo页面优化技术
  • 雅安做网站的公司app开发需要多少费用
  • 东莞 网站 建设 雕塑自己怎么开电商平台
  • 北京建设委员会网站首都之窗网站推广和优化系统
  • 哈尔滨百姓网seo公司上海
  • 哪个网站可以做片头抖音关键词搜索指数
  • 广州网站建设优化方案网络推广服务
  • 网站建设方式与信息化宁德市区哪里好玩
  • 互联网站公安备案百度官方首页
  • 怎么把自己的网站放到百度上seo少女
  • 舞阳专业做网站软文吧
  • 手机上如何做微电影网站sem是什么职位
  • 沈阳 网站建设淘宝客推广一天80单
  • 国外工装设计网站大全网络营销的优势是什么
  • 临沂做企业网站的公司逆冬黑帽seo培训
  • 2023年二建报名网站官网登录深圳网络推广引流
  • web前端就业前景广州seo教程
  • 企业做网站的好处有哪些怎么看app的下载网址
  • 长沙房地产市场分析seo研究院