文章目录
3.函数调用链:getList -> list -> request[axios]
6.get:http请求方式对应为后端的@GetMapping
9.预览后端响应数据,返回了数据,总数据条total为 11,是total赋值之后,通过前端组件pagination显示出来的结果。
1.RequestMapping-->GetMapping 为响应前端的HTTP请求
2.startPage()为分页函数,分页调用需先执行这个函数
3.getDataTable(list)返回的参数需要执行此函数的包装
4.函数startPage() 和getDataTable()
①找到this.total = ,说明在构造父类PageSerializable 时,初始化了total。
②PageInfo(list) 就是在构造PageInfo 对象。
②selectPostList 语句返回的list 实际类型为Page [经过MyBatis 框架处理返回]
8.selectPostList对应xml,没有使用pageNum 和pageSize 删选数据,返回的是所有数据。
10.MyBatis 通过startPage 中的函数PageHelper.startPage 做到了对SQL 语句的修改
一、分页界面
二、Ruoyi前端源代码
1.total初始值为0,需要后端返回数据的总条数
2.界面点击的页数,会触发getList函数
3.函数调用链:getList -> list -> request[axios]
4.request:调用axios
5.url:调用后端的url
6.get:http请求方式对应为后端的@GetMapping
7.XHR筛选前端与后端的交互
8.pageNum:第几页 ;pageSize:每页条数
9.预览后端响应数据,返回了数据,总数据条total为 11,是total赋值之后,通过前端组件pagination显示出来的结果。
三、后端代码
1.RequestMapping-->GetMapping 为响应前端的HTTP请求
2.startPage()为分页函数,分页调用需先执行这个函数
3.getDataTable(list)返回的参数需要执行此函数的包装
4.函数startPage() 和getDataTable()
5.可以通过list,使total 值大于list 长度,因为类PageInfo 继承类PageSerializable,类PageInfo 调用getTotal 为父类PageSerializable 函数。
6.total被赋值的过程:
①找到this.total = ,说明在构造父类PageSerializable 时,初始化了total。
②PageInfo(list) 就是在构造PageInfo 对象。
③构造流程为new PageInfo(list) -> this(list, DEFAULT_NAVIGATE_PAGES) -> super(list); 其中super 为类PageSerializable
7.实现total 的值比List 里的元素个数大
①类Page 继承类List
②selectPostList 语句返回的list 实际类型为Page [经过MyBatis 框架处理返回]
③类Page 含有属性total 保存数据总条数
8.selectPostList对应xml,没有使用pageNum 和pageSize 删选数据,返回的是所有数据。
9.Log输出如下
SQL 被MyBatis 拦截改变了,selectOperLogList 函数对应两句SQL:一句查询表的总行数[count(0)];一句对查询数据做了行数输出限制[LIMIT 10]
对应前端参数pageNum=1&pageSize=10
count(0):表数据的总行数
LIMIT 有两种形式:①LIMIT num:数据的前num 个②LIMIT offset,num:从offset 偏移位置开始的num 个数据
10.MyBatis 通过startPage 中的函数PageHelper.startPage 做到了对SQL 语句的修改
11.得到total
通过MyBatis 修改SQL 语句,多请求一句SQL 语句:
SELECT count(0) FROM sys_oper_log 返回了总行数给到Page 对象的total 成员。然后通过子类Page 强转父类List 对象,访问其成员total 值,赋值给PageInfo 父类成员total,即this.total = ((Page)list).getTotal();得到total 是表格所有数据的总行数。