查询后经过后台处理的数据的分页显示

Posted liunianfeiyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询后经过后台处理的数据的分页显示相关的知识,希望对你有一定的参考价值。

  项目中遇到一个需求,要对一个查询到的数据结果进行分页显示,一开始以为只是简单的进行分页,后来一看代码,发现在数据查出来以后会经过后台处理,并不是查询出多少条数据就会显示多少条数据,这样分页就不是根据查出的记录进行分页。
  所以我就看了下分页的依据,然后根据这个分页的依据,写语句时通过这个依据查出这个依据的前多少条记录,然后与原本的查询结果进行左外连接,连接条件是这些分页的依据,从而一次性的查询出了结果,这些结果在后台经过处理后,因为这些结果都是通过某一页的分页依据查出来的,所以展示后正好会是那一页的数据。
  下面附上代码

技术分享图片

技术分享图片

  然后到前台页面就会发现展示的结果数并不是查出的记录数,这时,我发现前台的展示的记录数实际是下面的内容控制的。

技术分享图片

  一个Set,可能有两种情况,下面要怎么处理呢,在sql中用distinct,后面跟APPLIER_DEPT_CODE,CONS_DEPT_CODE,SPECAIL_CONS_ITEM_CODE或者APPLIER_DEPT_CODE,CONS_DEPT_CODE,然后查询条件和与原先的查询条件相同,这样就查出了前台页面所有展示的记录数,再对distinct的结果进行分页,就得出了每一页要展示的记录,与原先的查询做左外连接,条件就是APPLIER_DEPT_CODE,CONS_DEPT_CODE或者APPLIER_DEPT_CODE,CONS_DEPT_CODE,SPECAIL_CONS_ITEM_CODE,这样就查出了每一页的数据,修改后的代码如下

技术分享图片

技术分享图片

总结一下,这种情况应该很常见,就是从数据库查出一些记录,需要分页展示,但是这些记录并不是直接一条条展示在页面上,而是要经过一系列处理,展示的数据并不是查出的数据,这时我们可以观察一下展示每一条数据的依据,然后用原来的查询条件对这些依据进行分页,将原来的查询结果与依据的分页结果进行左外连接,条件就是这些分页依据,这样查出的结果就是那一页要用到的结果,再对这些结果进行处理,到前台后正好是要展示的那一页。



以上是关于查询后经过后台处理的数据的分页显示的主要内容,如果未能解决你的问题,请参考以下文章

jdbcTemplate 后台接口中的分页

mysql——分页技术实现(基于layui框架)

java 中查询数据库后的分页咋做,管理系统的查询显示方面,上一页,下一页的实现

jquery easyui datagrid 分页实现

jsp:使用jsp完成数据的分页显示

对数据分页后,2次查询的分页,点击上一页,下一页,首页,尾页,都会跳到2次查询之前的分页显示,怎么办