若依框架使用

article/2025/6/26 22:03:31

官方文档 https://doc.ruoyi.vip/ruoyi-vue/

自动生成代码工具的使用

  1. 导入,将准备生成模板的表进行导入

  2. 编辑,修改 基本信息、字段信息、生成信息

    • 基本信息中修改作者!!!
    • 字段信息按需调整
    • 生成信息 - 自定义路径 D:\hzsj-frame\hz-frame\frame-knife4j\src
      在这里插入图片描述
  3. 预览

  4. 生成代码

  5. 将自动生成的文件移动到对应的模块下(包)— 后期优化

后期待调整

  1. 后端代码中按照模块名进行分包生成
  2. 前端代码自动生成

框架中用户体系的讲解

主表:用户表 sys_user | 部门表 sys_dept | 角色表 sys_role | 岗位表 sys_post | 菜单表 sys_menu

关联表:用户角色表 sys_user_role | 用户岗位 sys_user_post | 角色部门表 sys_role_dept |角色菜单表sys_role_menu

表设计

在这里插入图片描述

获取用户token

接口调用示例

在这里插入图片描述

获取用户、部门相关信息

参考:com.chinaoly.knife4j.controller.map.MapFiveColorController.getInfo

// 获取用户信息
LoginUser loginUser = SecurityUtils.getLoginUser();
log.info("用户姓名:{}", loginUser.getUsername());
SysUser user = loginUser.getUser();// 用户
log.info("用户id:{}", user.getUserId());// 用户id
log.info("用户身份证:{}", user.getIdCard());//用户身份证
SysDept dept = user.getDept();// 部门
log.info("部门层级:{}", dept.getLevel());//部门层级 级别,0市局,1分局,2派出所
log.info("部门code:{}", dept.getDeptCode());// 部门code
log.info("部门name:{}", dept.getDeptName());// 部门name

frame-knife4j 包结构说明

knife4j 可以理解为swagger的升级版,详情见:官网

开发过程中主要将代码写在此包下!

整体项目的框架

com.chinaoly     
├── common            // 工具类
│       └── annotation                    // 自定义注解
│       └── config                        // 全局配置
│       └── constant                      // 通用常量
│       └── core                          // 核心控制
│       └── enums                         // 通用枚举
│       └── exception                     // 通用异常
│       └── filter                        // 过滤器处理
│       └── utils                         // 通用类处理
├── framework         // 框架核心
│       └── aspectj                       // 注解实现
│       └── config                        // 系统配置
│       └── datasource                    // 数据权限
│       └── interceptor                   // 拦截器
│       └── manager                       // 异步处理
│       └── security                      // 权限控制
│       └── web                           // 前端控制
├── frame-generator    // 代码生成
├── frame-quartz       // 定时任务
├── frame-system       // 系统代码
├── frame-admin        // 后台服务
├── frame-knife4j      // 接口调用
│       └── config                        // 系统配置
│       └── controller                    // 控制层
│       └── service                   	  // 业务逻辑层
│       └── mapper                        // 数据库操作层
│       └── domain                        // 实体对象层
│           ├─dto                         // 数据传输对象
│           ├─entity                      // 数据库对应的实体类
│           ├─param                       // 请求参数
│           ├─vo                          // 页面对象

具体逻辑 可看frame项目中有demo

注:param中可不加beginTime和endTime

<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->and date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->and date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>

分页逻辑

参考官网https://doc.ruoyi.vip/ruoyi/document/htsc.html

前端实现:

queryParams: {pageNum: 1,pageSize: 10
},

后端实现:

@PostMapping("/list")
@ResponseBody
public TableDataInfo list(User user)
{startPage();  // 此方法配合前端完成自动分页List<User> list = userService.selectUserList(user);return getDataTable(list);
}/*** 设置请求分页数据*/
protected void startPage() {PageDomain pageDomain = TableSupport.buildPageRequest();Integer pageNum = pageDomain.getPageNum();Integer pageSize = pageDomain.getPageSize();if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());PageHelper.startPage(pageNum, pageSize, orderBy);}
}
  • 参数对象user中不需要添加pageNum、pageSize,orderBy对象也是同理。前端传入后,startPage中会自动接收,PageHelper会在sql中进行分页;
  • startPage(),只会对第一个查询(Select)语句得到的数据进行分页,栗子在官方文档中有说明;
  • 当service中需要分页时,继承BaseServiceImpl,调用startPage()方法
  • 开发中会有遇到 一个select查询语句无法实现逻辑的情况【如要将两个查询的list进行排序或处理逻辑后分页展示】,则需要手动分页,即手动构建pageInfo对象;

MyBatis-Plus

MyBatis-Plus

https://mybatis.plus/guide/

例子:https://blog.csdn.net/tian330726/article/details/106087857


http://chatgpt.dhexx.cn/article/1bnLV1ZM.shtml

相关文章

若依框架---PageHelper分页(十一)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

若依框架代码自动生成器研究----表查询篇

最近生产环境用了一个开源系统&#xff1a;若依&#xff0c;其中有一个版块很有意思&#xff0c;很能提高生产效率: “代码生成器”。 其功能所处模块菜单为&#xff1a;系统工具->代码生成。我们来研究一下他的代码生成逻辑。 工具使用方法 1、建表 使用代码生成&#…

若依框架详细使用教程

目录 若依简介 若依使用 搭建后端 搭建前端 若依的使用 若依简介 RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|Ruo…

部署若依框架

若依官网&#xff1a; http://www.ruoyi.vip/点击直接进入若依官网 下载资源 &#xff08;共有三个版本供下载&#xff0c;依次尝试部署&#xff09; 前后端不分离版 点击 ruoyi源码下载&#xff0c;进入gitee,选择 克隆/下载。我这里选择的是下载ZIP包。解压后使用 idea 导入…

若依框架---PageHelper分页(十)

在前几天的文章中&#xff0c;我们介绍了PageHelper的分页方法&#xff0c;研读代码定位到了ExecutorUtil.pageQuery(...)方法&#xff0c;并阅读到了其中的部分代码。 今天我们将看到重要的SQL修改代码。 getPageSql 我们接着看代码&#xff1a; if (!dialect.beforePage(…

若依框架(一 运行框架)

若依框架-前后端分离版(一) 框架介绍 本身是一个优秀的简单的后台管理系统框架,前端(Vue,ElementUI),后端(Spring Boot、Spring Security、Redis & Jwt(JWT即JSON Web Token,是一种在两方之间以紧凑、可验证的形式传输信息的方式。此信息可以验证和信任&#xff0c;因为它…

若依框架搭建和使用

一.搭建系统 若依官网&#xff1a;RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框…

若依框架---模板生成

上次说到通过mybatis-collection机制&#xff0c;将数据库中的一对多数据映射为Java对象GenTable&#xff0c;之后又是如何一步一步的生成预览代码的呢&#xff1f; 我们注意到GenTable中有一个字段名为tplCategory&#xff0c;它可取值crud&#xff0c; tree&#xff0c;sub&…

导出(若依框架)

导出&#xff08;若依框架&#xff09; 分析用户界面&#xff0c;以用户列表的导出为例。 导出 前端代码 ​ 点击导出按钮&#xff0c;触发函数handleExport&#xff0c;在该函数中调用exportUser&#xff0c;exportUser执行完毕后&#xff0c;再调用download方法下载。 ex…

简单入门若依框架

前言 本篇博客仅对若依框架的使用进行简单的介绍&#xff0c;它和php的fastadmin框架非常类似&#xff0c;是可以根据数据库表自动的生成一个完整的管理后台。关于fastadmin框架&#xff0c;我在前面的博客中有过简单的介绍&#xff0c;感兴趣的朋友可以查看这篇博客。 一、下载…

若依框架AjaxResult改造适应Swagger接口文档

一、 概述 若依框架后端使用的响应对象AjaxResult&#xff0c;和Swagger存在不兼容问题&#xff0c;导致返回体即使使用了Swagger注解&#xff0c;但是Swagger接口文档中&#xff0c;不显示返回体的对象Swagger文档&#xff1a; 若依Gitee上&#xff0c;也存在此问题&#x…

若依框架数据库密码加密

1. 用 Druid 提供的方法加密密码&#xff0c;控制台会输出三对值&#xff0c;分别是&#xff1a;privateKey、publicKey、password public static void main(String[] args) {String password "password";try {ConfigTools.main(new String[]{password});} catch (…

IDEA若依框架新建模块

创建新的module 项目上鼠标右键 选择Maven项目 Parent选ruoyi 点击Finish 编辑RuoYi-Vue_Wisdom/ruoyi-wisdom/pom.xml 在<artifactId>ruoyi-wisdom</artifactId>下面增加 <dependencies><!-- 通用工具--><dependency><groupId>com…

若依框架登录去除验证码

若依框架自带的登录功能还是挺好用的。但是在开发过程中经过因在编写代码或者编写设计文档登录会话到期重新登录。重新登录就会出现验证码&#xff0c;一天如果要输入10次验证码也会浪费不少时间。 验证码这个功能在生产环境非常有必要&#xff0c;但是在开发模式完全没有价值…

若依框架解析

1.框架介绍 RuoYi是一个基于Java技术开发的后台管理系统&#xff0c;基于技术组合&#xff08;SpringBootVue&#xff09;,内置模块有&#xff1a;部门管理、角色用户、菜单即按钮授权、数据权限、系统参数、日志管理、代码生成、表单构建等。支持多数据源、支持分布式事务。 …

若依框架项目

若依框架介绍 ruoyi是一个基于Java技术开发的后台管理系统。 包括有前后端分离版、微服务版、App版。内置模块有&#xff1a;部门管理、角色用户、菜单即按钮授权、数据权限、系统参数、日志管理、代码生成、表单构建等。支持多数据源、支持分布式事务。 若依前后端分离项目搭…

若依框架的使用

目录 1.为什么使用若依框架 2.环境搭建 2.1下载代码 2.2 系统配置 1.为什么使用若依框架 若依是一个快速开发框架&#xff0c;基于springboot&#xff0c;集成了mybatis&#xff0c;spring security&#xff0c;redis等常用的框架&#xff0c;支持多语言&#xff0c;已经实…

若依框架RuoYi前后端分离项目导入IDEA及运行启动

首先需要在码云上下载RuoYi-vue解压到你的工作目录&#xff08;https://gitee.com/y_project/RuoYi-Vue&#xff09; 然后去nodejs官网下载nodejs 除了选择你的安装目录一直next&#xff08;查看环境变量是否配置成功&#xff09; 安装完成后&#xff0c;cmd中输入&#xff1a;…

ruoyi(若依)框架使用说明(前后端分离)

TOC 框架介绍 本身是一个优秀的简单的后台管理系统框架,前端(Vue,ElementUI),后端(Spring Boot、Spring Security、Redis & Jwt),本身可以直接拉下来直接使用.它的强大之处在于代码自动生成器的使用,可以根据数据库的表对应生成全套前后端代码,代码植入后可以直接使用,复…

使用若依框架RuoYi前后端分离版(超详细步骤)

下一客:若依框架代码生成工具–单表增删改查(超详细步骤) 一、若依框架RuoYi项目运行启动教程(详细步骤) 1.1 官网下载代码 第一步:简介 RuoYi-Vue是一款基于SpringBootVue的前后端分离极速后台开发框架。 官网链接 在线文档 第二步:下载源码 1.点击复制,将链接复制到IDEA中…