当前位置: 首页 > news >正文

若依基本使用及改造记录

若依框架想必大家都了解得不少,不可否认这是一款及其简便易用的框架。

在某种情况下(比如私活)使用起来可谓是快得一匹。

在这里小兵结合自身实际使用情况,记录一下我对若依框架的使用和改造情况。

一、源码下载

前往码云进行下载。(vue前后端分离版)

RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本

下载后是下面图片的样子,除了 ruoyi-ui 是前端项目外,其它都是后端代码。

可以自行创建两个 git 项目如 ry-admin 、 ry-web,将后端源代码、前端源代码分别上传到自己的git 项目中方便后面管理。

二、源码启动

2.1 修改数据库连接

查看: ruoyi-admin\src\main\resources\application-druid.yml 中的配置,可看到其默认配置如下。

master:url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: password

把 库名 ry-vue 和 密码 password 换成自己的库名和密码. 

然后执行项目初始化sql: sql/ry_20240629.sql

2.2 启动后端服务

修改完数据库连接/redis连接并初始化sql后,找到 com/ruoyi/RuoYiApplication.java 右键启动

启动成功后,可以访问 8080 端口进行验证。

2.3 启动前端服务

先安装依赖 npm i 

 安装完成后启动  npm run dev

访问 localhost 使用 admin/admin123 可以看到初版页面。

默认的首页是若依框架的介绍页面,一般不会使用。可以先用若依提供的 views/index_v1.vue 中的内容替换 views/index.vue 的内容,有点首页的样子先。

右上角的工具栏,一般只需要保留全屏功能即可。

全局搜索“源码地址”,将无关功能注释或删掉,保留所需即可。

若依官网的菜单也通过 系统管理-菜单管理 删除。 

验证码可以在application.yml中将方式修改为字符验证 captchaType: char

三、原始CURD使用

若依提供了基本的代码生成功能。

以如下测试表 demo1 为例

CREATE TABLE `demo1` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',`name` varchar(255) DEFAULT NULL COMMENT '用户名',`age` int(11) DEFAULT NULL COMMENT '年龄',`birthday` date DEFAULT NULL COMMENT '出生日期',`create_time` datetime DEFAULT NULL,`create_by` varchar(255) DEFAULT NULL,`update_time` datetime DEFAULT NULL,`update_by` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试示例表1';

执行以上sql后,在前端页面  系统工具-代码生成 中生成对应代码,并使用。

将生成的 controller/service/mapper/domain/js/vue 代码复制到相应位置,并执行对应sql后,重启项目,可以使用对该表在页面中进行增删改查功能的使用。

四、使用mybatisPlus与lombok

 一般项目中可以使用 mybatisPlus 和 lombok 来加速开发,代码更为简便和优雅。若依中未进行使用。可以对其进行改造。

在 ruoyi-common/pom.xml 中导入相关依赖:

        <lombok.version>1.18.20</lombok.version><mybatis-plus.version>3.5.1</mybatis-plus.version><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency>

将mybatis改为mybatisPlus:

修改com/ruoyi/framework/config/MyBatisConfig.java 中的 SqlSessionFactoryBean 为 MybatisSqlSessionFactoryBean

final MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();

再以上示测试表复制为 demo2 为例,对应实体如下:

package com.ruoyi.system.domain;import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;/*** 测试示例2对象 demo2** @author ruoyi* @date 2025-01-28*/
@Data
public class Demo2
{private static final long serialVersionUID = 1L;/** id */private Long id;/** 用户名 */@Excel(name = "用户名")private String name;/** 年龄 */@Excel(name = "年龄")private Long age;/** 出生日期 */@JsonFormat(pattern = "yyyy-MM-dd")@Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")private Date birthday;/** 创建者 */private String createBy;/** 创建时间 */@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date createTime;/** 更新者 */private String updateBy;/** 更新时间 */@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date updateTime;}

对应mapper.xml 多继承 BaseMapper:

public interface Demo2Mapper extends BaseMapper<Demo2> {...
}

对应 service.java 多继承 IService:

public interface IDemo2Service extends IService<Demo2> {...
}

对应 serviceImpl.java 多继承 ServiceImpl: 

public class Demo2ServiceImpl extends ServiceImpl<Demo2Mapper, Demo2> implements IDemo2Service {....
}

为了使自动生成的代码也达到使用mybatisPlus的效果,需要修改 ruoyi-generator\src\main\resources\vm 对应的生成代码模板。

http://www.lryc.cn/news/527774.html

相关文章:

  • 学习数据结构(2)空间复杂度+顺序表
  • C语言复习
  • Qt监控系统辅屏预览/可以同时打开4个屏幕预览/支持5x64通道预览/onvif和rtsp接入/性能好
  • ubuntu22安装issac gym记录
  • IDEA工具下载、配置和Tomcat配置
  • Three.js实战项目02:vue3+three.js实现汽车展厅项目
  • 动态规划——斜率优化DP
  • 【深度之眼cs231n第七期】笔记(三十一)
  • 【云安全】云原生-K8S-简介
  • SpringBoot中Excel表的导入、导出功能的实现
  • Spark入门(Python)
  • Daemon进程创建过程
  • 在sortablejs的拖拽排序情况下阻止input拖拽事件
  • C++初阶—string类
  • C# 提取PDF表单数据
  • 算法刷题Day28:BM66 最长公共子串
  • 论文阅读笔记:MambaOut: Do We Really Need Mamba for Vision?
  • HarmonyOS:ForEach:循环渲染
  • Python3 【函数】项目实战:5 个新颖的学习案例
  • XSS 漏洞全面解析:原理、危害与防范
  • 从 GShard 到 DeepSeek-V3:回顾 MoE 大模型负载均衡策略演进
  • 【回溯+剪枝】回溯算法的概念 全排列问题
  • Flutter解决macbook M芯片Android Studio中不显示IOS真机的问题
  • 自签证书的dockerfile中from命令无法拉取镜像而docker的pull命令能拉取镜像
  • 【MySQL】--- 复合查询 内外连接
  • QT TLS initialization failed
  • 系统学英语 — 句法 — 复合句
  • 指针的介绍2前
  • 16.Word:石油化工设备技术❗【28】
  • Python-基础环境(01) 虚拟环境,Python 基础环境之虚拟环境,一篇文章助你完全搞懂!