若依开源项目的讲解(适用于初级没有项目经验的小白)

 2023-03-26 19:27:02  阅读 0

一、使用场景

若依是一个免费的开源的权限系统,很多学生会选择使用它作为自己的第一个求职项目。

其中功能非常丰富:

  1. 前端使用Vue.js和Element UI。
  2. 后端使用Spring Boot、MyBatis Plus和Shiro框架。
  3. 数据库使用MySQL和Redis。
  4. 消息队列使用RabbitMQ。
  5. 定时任务使用Quartz框架。

若依项目是一款基于Spring Boot和Vue.js的快速开发平台,采用前后端分离架构,提供了包括用户管理、角色管理、菜单管理、部门管理、字典管理、代码生成、操作日志、在线文档、定时任务和消息通知等功能。同时,若依项目使用了多种技术,包括Vue.js、Element UI、Spring Boot、MyBatis Plus、Shiro框架、MySQL、Redis、RabbitMQ和Quartz框架等。

二、分页查询如何实现的

*/
@PreAuthorize("@ss.hasPermi( 'edu:equipment:list ' )")GetMapping(ov"/list")
public TableDataInfo list(EduEquipmenteduEquipment)
startPage();
List<EduEquipmentVo> list = eduEquipmentService.selectVolist(eduEquipment);return getDataTable(list);
}

看到这样的后端接口 你一定会问,为什么这么简单 分页在哪里

前端传递参数 使用 list?pagesize等等发现 后端并没有参数接收 找到原因 原来是前端使用了参数配置 。

/l get请求映射params参数
if ( config.method === 'get' &&config.params)i
let url = config.url + '?’ + tansParams(config.params);url = url.slice(e,-1);
config.params = {};
config.url = url;

从全局动态区加载参数 拼接字符串的方式向后端传递参数

//查询实验室设备列表
export function listEquipment(query) {
return request({
url: '/edu/equipment/ list',method: 'get' ,
params : queryE

js中将参数 使用query

methods: {
/**查询实验室设备列表*/getList(i
this.loading = true;
listEquipment(this.queryParams).then(response => {
this.equipmentList = response.rows;
this.total = response.total;
this.loading = false;
});

mapper中我们发现 只是正常的条件查询出数据 并没有进行分页处理


入方法后 发现原来分页请求在这里处理的

*响应请求分页数据*/
/rawtypes,unchecked/
protected TableDataInfo getDataTable(List<?> list)f
TableDataInfo rspData = new TableDataInfo();rspData.setCode(HttpStatus.succESs);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(new PageInfo(list).getTotal());return rspData;
}


为了更好确定 到底分页是查询的时候分页 还是返回数据后分页 决定将 startPage注释 看看sql语句是否还是分页的
发现确实没有分页
所以肯定的是 这里使用了 strtPage方法 对数据库查询时候加入了字段 从前端接收字段 拼接到数据库的sql语句上
那么如果有查询条件参数 又怎么拼接那
发现没有了 startPage仍然可以传递参数 那么可以确定 框中输入的数据 可以传递过来 但是分页数据 是特定处理的
这时若以独特的写法
如上就是分页系统的整个流程 源码还在等待发掘中

 

标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码