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

ruoyi-vue自动生成代码

我看到这个ruoyi-vue有自动生成代码的功能,这里我们可以体验一下改如何实现。

还是首先在 ruoyi-admin 下面的文件夹target里面执行  java -jar ruoyi-admin.jar ,然后再 ruoyi-ui 下面执行  npm run dev 

好,项目启动起来了,然后登录到后台里面去,点击系统工具里面的代码生成

image

 点击导入

image

 点上面的全选框,然后确定

image

 提示操作成功,然后效果如下

image

仔细看了看,发现好像还能导入,因为刚才只选择了一页,再操作一次

image

 好了,现在是可以了的

image

我们可以看到,由于这些表的功能系统已经提供了,就在系统管理里面。

image

 所以我们再去生成意义不是很大。

这里,我们重新做一张表出来,SQL就是

CREATE TABLE `salary` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长编号',`personId` bigint(20) NOT NULL COMMENT '员工编号',`month` date NOT NULL COMMENT '月份',`salary` float NOT NULL COMMENT '工资',PRIMARY KEY (`id`) USING BTREE,KEY `personID_s` (`personId`) USING BTREE,CONSTRAINT `personID_s` FOREIGN KEY (`personId`) REFERENCES `sys_user` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

这张表是参加比赛前培训的时候老师给我们的,可以看到,这是一张工资表,主键采用int类型,persionId关联了 sys_user 的 user_id,然后month是date类型标识月份,salary是float类型代表工资。

这里面personId是索引键,这是很不错的,同时他也是外键,这个外键在我们实际生产中用的已经比较少了,这可能和行业有关,有的行业需要数据库关系更加强硬,避免数据误删除,有的行业要求数据库没有任何关联,这样方便开发迭代和拆表等,这个各有优劣。

好,现在我们将这段SQL复制然后创建表,如何在这个系统里面实现呢?

还是这个页面,点击创建,然后粘贴SQL,之后点击确定

image

 好了执行成功后我们就看到这条记录了。

image

 点击编辑

image

 来到这个界面

image

 点击基本信息按照图中这样配置表描述后点击提交

image

然后他提示 表单校验未通过,请重新检查提交内容

此时我们需要点击生成信息然后看看哪些没填写,发现是生成功能名没填写,这里录入 "工资",然后提交保存。

image

 这里我们想做工资管理,需要创建一个菜单,我们先创建一个工资管理的菜单。

点击系统管理->菜单管理

image

 点击新增

image

菜单图标那里点击一下,弹出选择图标的组件,然后你搜索 money 能找到一个钱的图标,点击选择。

菜单名称填写 工资管理 ,路由地址写 salary,然后显示排序写个1,之后保存。

salary

好了,现在有了菜单,你刷新一下页面,可以看到这样

 image

 当你点击这个页面的时候,会出现一个空白页面

image

 然后我们去系统工具->代码生成里面找到salary点击一下编辑,找到生成信息 里面的 上级菜单

image

点击之后选择工资管理然后提交

image

 之后我们来到这里点击一下生成代码

image

 这个时候看到了这样的效果。

image

 点击就让我们下载一个 ruoyi.zip 的压缩包,这里我们改个名字,叫 salary_code.zip

下载完毕,我们打开压缩包,看到这样的结构

image

 然后我们把 main 里面的 resources 和 java 两个文件夹 拷贝到 ruoyi-admin/src/main 里面去,他会自动合并

image

然后把vue里面的 views 和 api 两个文件夹拷贝到 ruoyi-ui/src 里面去,他也会自动合并

image

 然后我们找到 salaryMenu.sql 打开它, 发现内容是这样的。

-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资', '2000', '1', 'salary', 'system/salary/index', 1, 0, 'C', '0', '0', 'system:salary:list', '#', 'admin', sysdate(), '', null, '工资菜单');-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:query',        '#', 'admin', sysdate(), '', null, '');insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:add',          '#', 'admin', sysdate(), '', null, '');insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:edit',         '#', 'admin', sysdate(), '', null, '');insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:remove',       '#', 'admin', sysdate(), '', null, '');insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:export',       '#', 'admin', sysdate(), '', null, '');

我们拷贝这段内容,来到命令行窗口里面,先选择 ry-vue 数据库,然后粘贴SQL

mysql> use ry-vue;
Database changed
mysql> -- 菜单 SQL
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资', '2000', '1', 'salary', 'system/salary/index', 1, 0, 'C', '0', '0', 'system:salary:list', '#', 'admin', sysdate(), '', null, '工资菜单');
Query OK, 1 row affected (0.02 sec)mysql> 
mysql> -- 按钮父菜单ID
mysql> SELECT @parentId := LAST_INSERT_ID();
+-------------------------------+
| @parentId := LAST_INSERT_ID() |
+-------------------------------+
|                          2007 |
+-------------------------------+
1 row in set, 1 warning (0.00 sec)mysql> 
mysql> -- 按钮 SQL
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:query',        '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.01 sec)mysql> 
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:add',          '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.02 sec)mysql> 
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:edit',         '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.01 sec)mysql> 
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:remove',       '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.01 sec)mysql> 
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:export',       '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.03 sec)

好了,执行完毕后,我们继续来到页面,点击工资管理,发现下面有个子菜单工资

image

 然后我们点击工资,发现系统接口404异常。这是为什么呢?

image

 这是由于我们刚刚粘贴进去了一些生成的java文件,但是没有重新编译,所以我们需要再执行一次这些启动步骤。

1.首先把服务ctrl+c停止掉,在项目目录下执行 mvn clean install -Dmaven.test.skip=true 

2.然后再在 ruoyi-admin 下面的文件夹target里面执行  java -jar ruoyi-admin.jar,不过可能提示你 Error: Unable to access jarfile ruoyi-admin.jar,这是因为你需要重新进一下这个目录,可以执行 cd ../ && cd target && java -jar ruoyi-admin.jar  

3.然后就在前端的 ruoyi-ui 里面执行  npm run dev 

好了,所有服务重新启动,然后让你重新登录,登录后就可以看到这样的页面了。

image

 我们来加两条数据。

image

image

看列表:

image

 点击修改,也能拿到修改的数据:

image

 点击删除,弹出确认框,点击确定就删除了:

image

根据搜索框也能搜到对应的数据:

image

 

看来,其基础的增加删除修改查询,都已经做好了。

 好了,这已经是手把手的教学,让你知道如何使用ruoyi-vue项目来创建一个功能对表实现基本的增删改查了,感兴趣的可以自己体验一下。

 

http://www.wxhsa.cn/company.asp?id=7687

相关文章:

  • 拥抱新一代 Web 3D 引擎,Three.js 项目快速升级 Galacean 指南
  • Fast IO 模板
  • kylin V11安装mysql8.4.5(glibc.2.28版本)
  • iOS 上架 App 流程全解析 苹果应用发布步骤、App Store 审核流程、ipa 文件上传与 uni-app 打包实战经验
  • P6801 花式围栏
  • ms sql dml 操作
  • 黑白染色方法
  • Windows 数字签名获取与验证详解
  • 转化率提升300%,火山引擎Data Agent以“一客一策”突破企业营销增长瓶颈
  • 矩阵模板
  • 快读模板
  • ipadװwindowsϵͳshell
  • cpu的各种寄存器及其功能
  • 如何关闭电视的ACR功能及其对隐私保护的重大意义
  • huggingface 模型权重文件
  • vscode设置单击选中带连字符的单词
  • P4147 玉蟾宫(悬线法)
  • 全局平衡二叉树
  • Transactional注解的方法里 spring怎么知道我用的是哪个jdbctemplate实例
  • 根据参数查询
  • 关于非侵入式脑机接口面向C端一个应用想法
  • Blelloch并行扫描算法
  • 国产化DevOps生态崛起:Gitee如何赋能企业数字化转型
  • 【IEEE出版】2025年电气、控制与人工智能国际学术会议(ICOECAI 2025)
  • 采购计划 vs 物料需求计划(MRP),采购新手最容易搞混的两份“清单”!
  • P10299 [CCC 2024 S5] Chocolate Bar Partition
  • 实用指南:企业实施数字化转型时常见的挑战
  • 当ARMxy+AI边缘计算落地水泵行业就碰撞出怎样的火花?
  • QN8035 FM芯片驱动开发
  • 再见 Claude Code,我选择了 Codex!真香!!