RuoYi-Vue生成代码使用功能
RuoYi-Vue生成代码使用功能
RuoYi-Vue是一个基于Spring Boot和Vue.js的前后端分离快速开发框架,提供了强大的后端管理功能和前端页面的快速生成能力。通过内置的代码生成器,开发者可以快速生成符合业务需求的CRUD(创建、读取、更新、删除)操作代码,极大地提高了开发效率,缩短了项目周期。本文将详细介绍RuoYi-Vue项目的代码生成器功能,帮助开发者了解如何高效地使用该工具。
前言
在现代Web应用开发中,效率和质量是两大核心要求。RuoYi-Vue作为一个基于Spring Boot和Vue.js的前后端分离快速开发框架,提供了强大的后端管理功能和前端页面的快速生成能力。通过内置的代码生成器,开发者可以快速生成符合业务需求的CRUD(创建、读取、更新、删除)操作代码,极大地提高了开发效率,缩短了项目周期。本文将详细介绍RuoYi-Vue项目的代码生成器功能,帮助开发者了解如何高效地使用该工具。
一、代码生成器概述介绍
1. 代码生成器功能介绍
RuoYi-Vue代码生成器是一个强大的工具,旨在帮助开发者快速生成符合业务需求的CRUD操作代码。它不仅支持生成后端接口代码,还可以生成前端页面代码,极大地提高了开发效率。以下是代码生成器的主要功能:
- 自动生成后端代码: 包括控制器(Controller)、服务层(Service)、数据访问层(DAO)等。
- 自动生成前端代码: 包括Vue组件、API请求封装等。
- 支持多种数据库: 如MySQL、Oracle、SQL Server等。
- 灵活的模板定制: 允许用户根据项目需求自定义代码生成模板。
- 丰富的配置选项: 提供多种生成选项,如是否生成菜单、按钮权限控制等。
- 代码注释生成: 自动生成详细的代码注释,方便后续维护。
2. 代码生成器的工作原理
RuoYi-Vue代码生成器的工作原理主要包括以下几个步骤:
- 读取数据库表结构: 代码生成器首先连接到数据库,读取指定表的结构信息,包括字段名、数据类型、长度等。这一步骤确保生成的代码与数据库表结构完全匹配。
- 解析生成规则: 根据用户在生成器界面中配置的规则,解析生成哪些类型的文件(如Controller、Service、Mapper等)。
- 生成代码模板: 使用预定义的代码模板或用户自定义的模板,生成相应的代码文件。
- 保存生成的代码: 将生成的代码文件保存到指定的目录中。
二、代码生成器的使用
1. 启动代码生成器
在RuoYi-Vue项目中,启动代码生成器的步骤如下:
1.1确保您的开发环境已经配置好,包括JDK、MySQL、Maven等。
1.2使用IDE(如IntelliJ IDEA或Eclipse)打开RuoYi-Vue项目。
1.3启动项目,显示“若依启动成功”,项目能够正常运行。
1.4 启动及验证前台
1.5访问代码生成器:打开浏览器,访问RuoYi-Vue项目的后台管理系统,通常地址为http://localhost:80/。登录系统,进入系统工具模块,找到“代码生成”选项。
2. 配置生成自己的功能模块
2.1 准备数据源
做一个“学生信息”功能,首先得先有一张学生信息表,直接在ry-vue数据库中创建my_student,记得添加注释,后面功能会用上。往数据表中添加几条数据。
创建好之后,往数据表中添加几条数据。
2.2 使用RuoYi代码生成器生成菜单及接口还有页面
2.2.1选择数据源:
在代码生成器界面中,选择要生成代码的数据源。RuoYi-Vue默认配置了两个数据源,可以选择导入自己的数据源。
2.2.2选择表:
从数据源中选择要生成代码的表。可以选择单个表或多表生成。
- 配置生成选项: 包括包名、作者、模块名、表前缀等。
点击编辑
就可以对包名、作者、模块名、表前缀等进行修改
点击提交,显示操作成功。
2.3 生成代码实例
完成以上步骤之后,
2.3.1点击预览
2.3.2检查代码是否有误
2.3.3 代码生成
确认无误后,点击“生成”按钮,代码生成器会根据配置生成相应的代码文件。
上述代码展示了如何使用RuoYi-Vue-Plus中的中间件和服务层来处理用户登录请求。通过调用
userService.login()
方法验证用户信息,并利用JWT库生成token,最后将结果返回给客户端。这段示例不仅体现了框架在安全性方面的考量,同时也展示了其在处理前后端交互时的便捷性。
2.4 后端添加代码模块
2.4.1 新建模块ruoyi-student
在我们原本的若依项目下新建新模块
在目录中查看,创建成功。
2.4.2在pom文件中添加依赖
2.4.3添加学生信息模块
在ruoyi-admin文件下的pom文件中添加学生信息模块依赖
2.4.4 添加代码
解压刚刚生成的代码zip文件
前端代码vue,后端代码main。数据库studentMenu都已经准备好了
先将数据库文件放入数据库中进行查询
再添加后端代码:
将com文件导入RuoYi-Vue\ruoyi-student\src\main
将mapper文件复制到resource目录下
这样后端的代码就已经添加完毕
然后我们再来添加前端前端的代码:
将文件
复制到RuoYi-Vue\ruoyi-ui\src和java\RuoYi-Vue\ruoyi-ui\src目录下
此时代码就已经完全导入了。重启若依。
这样就完成了
三、测试功能
3.1添加学生信息: 通过生成的前端页面添加学生信息。
这样就添加成功了。
3.2修改学生信息: 修改已添加的学生信息。
这样就修改成功了
3.3删除学生信息: 删除不再需要的学生信息。
这样就删除成功了
3.4查询学生信息: 查询学生信息列表。
四、过程中遇到的问题
一、启动和验证前台过程中
1、在启动和验证前台时遇到以下状况:
解决方法:
若仍未解决,可参考:npm ERR! code CERT_HAS_EXPIRED:解决证书过期问题_npm证书过期-CSDN博客
二、在导入my_student过程中遇到以下问题
这个问题是由于在执行数据库查询时,SQL语句中引用了一个不存在的列
tpl_web_type
。具体来说,错误发生在文件
RuoYi-Vue\ruoyi-generator\target\classes\mapper\generator\GenTableMapper.xml
中的
com.ruoyi.generator.mapper.GenTableMapper.selectGenTableList
方法内联的SQL语句中。错误信息指出在
field list
中未知的列
tpl_web_type
。
我们按照错误提示找到文件RuoYi-Vue\ruoyi-generator\target\classes\mapper\generator
第一种方法:
第一种比较粗暴的解决方案是:直接在该文件下找到
tpl_web_type
然后把它删掉,再次启动若依,就能正常导入表了。
第二种方法
在日常写作业过程中,我们按照第一种方法当然是最简单粗暴的,但是在实际项目中,我们遇到该类问题时,不能因为数据库中没有这一列就直接将其删掉,直接删掉在后续的工作过程中可能会出现连锁反应,所以不建议使用第一个方法。
第二种方法是:报错显示缺少列
tpl_web_type,那么我们就在数据库中将其加上。
第一步:找到tpl_web_type所在的表
第二步:右键,选择设计表
第三步:点击添加字段
第四步:将
tpl_web_type添加进去
刷新数据库,重新启动ruoyi,该问题就被完美的解决啦!
三、在所有代码全部导入时
java.lang.NoSuchFieldError
通常是由于升级到Java 21后,Lombok等库无法正确访问内部的Java编译器API导致的。具体来说,Lombok在早期版本中使用反射访问
com.sun.tools.javac.tree.JCTree$JCImport
类的
qualid
字段,该字段在Java 21中的类型发生了变化。在Java 21及更高版本中,
qualid
字段的类型从
JCTree
变更为
JCFieldAccess
,这导致了Lombok无法正确访问该字段,从而抛出
NoSuchFieldError
异常。
五、总结
RuoYi-Vue作为一个现代化的后台管理系统前端解决方案,采用了当前流行的技术栈,例如Vue3、TypeScript、Element Plus等。这些技术的使用使得RuoYi-Vue具备了强大的功能和灵活的扩展性,可满足各种后台管理系统的开发需求。通过内置的代码生成器,开发者可以快速生成符合业务需求的CRUD操作代码,极大地提高了开发效率。希望本文能为您提供有价值的指导和参考。