分页处理,这是做JavaWeb项目中常见的场景。
背景:
1.系统架构:SpringCloud分布式
2.持久层:MyBatis
3.前端:前后分离vue.js/bootstrap等.
后台提供restful api 接口,前端访问后端接口展示数据。
2种方式提供分页处理方案:
一、直接MyBatis数据库进行分页
controller接口
Swagger-ui接口界面如下:
pageNum 和 pageSize 用于前端分页的参数,pageNum:表示页码第几页,pageSize:表示每页展示数据数量。
所有查询条件参数,在mapper-xml里进行处理,再利用数据库oracle本身的rownum行值进行分页。
xml代码:
优点:直观、方便、易排查问题。 缺点:访问数据库过于频繁,未利用到mybatis本身的缓存优势。
二、Java+缓存分页
这种方法对于前端而言是没变化,无感的。
只是在后端处理稍作变动,思路:
1.先把所有数据记录查询出来
2.数据库实体再次封装为查询实体
3.纯java代码进行分页
controller接口不变
service业务处理——>数据库crud操作变动
把所有数据库记录查询处理
再按照pageNum和pageSize进行分页处理
优点:利用了mybatis缓存机制,分页查询快速,减少数据库访问次数。
缺点:当数据量大的时候,100W+;在没有条件查询数据库的时候,耗时久
前端分页后的界面展示如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。