请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于分页插件PageHelper的一些问题

老师:你好。最近工作中正好也在写一些列表方面的接口,正好也可以用上咱们这边授课中所提到的PageHelper插件了,但是,今天开发要求中,突然多了一个要求,就是说今后带有分页查询的列表功能,都禁止使用PageHelper了,就用传统手工分页的代码写法来实现,原因是:PageHelper是会一下子拿到所有的数据后,再通过代码层做内存分页的,内存压力会比较大。我这边觉得用不用这个插件本身,肯定有好的方面(比如代码更简洁了),也有不好的方面,这个是毋庸置疑的。但是,今天给到我们这边的这个禁用的原因,内存压力会比较大,我觉得不是很合理,因为我看了下我们工作中的项目,包括咱们这边的课程项目里面,其实,分页数据的获取,还是用了SQL层面的分页实现语句,并不是我们这边宣传的是一下子都从数据表中把数据都拿回来之后,再通过代码层面做的内存分页来实现拿到分页数据的。这块,想请教一下老师对这个插件的一些见解。咱们课程项目里面,应用PageHelper涉及到的分页SQL日志语句如下:

==>  Preparing: SELECT count(0) FROM article WHERE ((is_appoint = ? AND is_delete = ? AND article_status = ?)) 
==> Parameters: 0(Integer), 0(Integer), 3(Integer)
<==    Columns: count(0)
<==        Row: 46
<==      Total: 1
==>  Preparing: SELECT id,title,category_id,article_type,article_cover,is_appoint,article_status,publish_user_id,publish_time,read_counts,comment_counts,mongo_file_id,is_delete,create_time,update_time,content FROM article WHERE ( ( is_appoint = ? and is_delete = ? and article_status = ? ) ) order by publish_time DESC LIMIT ? 
==> Parameters: 0(Integer), 0(Integer), 3(Integer), 15(Integer)

需要先查询总条数count(0),然后再SQL分页查询需要获取的单页数据,我觉得就是最常规的分页数据的获取流程而已。

正在回答 回答被采纳积分+3

1回答

风间影月 2023-03-27 20:48:17

你们公司的分页插件问题,和咱们这个不一样。你们是假分页,肯定不行的。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕勒3498910 #1
    我追了下我们工作中项目的SQL执行日志,也是和我们课程这边一样的,通过PageHelper作用后,执行的查询语句就是SQL层面的分页查询语句,只是我不方便截图放代码和日志内容了,所以,我就觉得比较奇怪,给到我的理由不是很充分,也只能先保留自己的观点了。
    回复 有任何疑惑可以回复我~ 2023-03-27 20:54:36
  • 风间影月 回复 提问者 慕勒3498910 #2
    问一下你们的技术总监或者架构师看看吧,我们自己项目都是用的pagehelper。部分项目用的mysql的limit手写分页。
    回复 有任何疑惑可以回复我~ 2023-03-27 20:57:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信