ruoyi-cloud代码生成(跨数据库)

时间:2022-10-28 12:15:23

使用ruoyi-cloud生成代码,发现只能生成当前的数据表,在微服务开发当中,每个模块都来自于不同的数据库,因此需要修改代码生成的配置文件,这里使用已经弄到的服务,参​​考ruoyi-cloud新增子模块​​这篇笔记。

1 修改nacos配置

启动naocs服务,配置ruoyi-gen-dev.yml服务

ruoyi-cloud代码生成(跨数据库)

修改链接的数据库,数据库账号和密码      

ruoyi-cloud代码生成(跨数据库)

发布nacos配置,重启ruoyi-gen服务

2 数据库导入数据表

项目启动完成之后,我们还需要在需要生成代码的数据库导入ruoyi-cloud中的gen_table数据表和gen_table_column数据表到需要生成代码的数据库中

ruoyi-cloud代码生成(跨数据库)

gen_table数据表

/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 80027
Source Host : localhost:3306
Source Schema : gulimall_oms
Target Server Type : MySQL
Target Server Version : 80027
File Encoding : 65001
Date: 15/09/2022 22:28:46
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for gen_table
-- ----------------------------
DROP TABLE IF EXISTS `gen_table`;
CREATE TABLE `gen_table` (
`table_id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号',
`table_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '表名称',
`table_comment` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '表描述',
`sub_table_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '关联子表的表名',
`sub_table_fk_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '子表关联的外键名',
`class_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '实体类名称',
`tpl_category` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)',
`package_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '生成包路径',
`module_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '生成模块名',
`business_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '生成业务名',
`function_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '生成功能名',
`function_author` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '生成功能作者',
`gen_type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)',
`gen_path` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '/' COMMENT '生成路径(不填默认项目路径)',
`options` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '其它生成选项',
`create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`table_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '代码生成业务表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of gen_table
-- ----------------------------

SET FOREIGN_KEY_CHECKS = 1;

 gen_table_column数据表

/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 80027
Source Host : localhost:3306
Source Schema : gulimall_oms
Target Server Type : MySQL
Target Server Version : 80027
File Encoding : 65001
Date: 15/09/2022 22:30:23
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for gen_table_column
-- ----------------------------
DROP TABLE IF EXISTS `gen_table_column`;
CREATE TABLE `gen_table_column` (
`column_id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号',
`table_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '归属表编号',
`column_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '列名称',
`column_comment` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '列描述',
`column_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '列类型',
`java_type` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'JAVA类型',
`java_field` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'JAVA字段名',
`is_pk` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否主键(1是)',
`is_increment` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否自增(1是)',
`is_required` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否必填(1是)',
`is_insert` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否为插入字段(1是)',
`is_edit` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否编辑字段(1是)',
`is_list` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否列表字段(1是)',
`is_query` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否查询字段(1是)',
`query_type` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)',
`html_type` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
`dict_type` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典类型',
`sort` int(0) NULL DEFAULT NULL COMMENT '排序',
`create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`column_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '代码生成业务表字段' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of gen_table_column
-- ----------------------------

SET FOREIGN_KEY_CHECKS = 1;

3 代码生成

ruoyi-cloud代码生成(跨数据库)

ruoyi-cloud代码生成(跨数据库)

导入成功即可看到选择的数据表,我们以oms_order为例子

ruoyi-cloud代码生成(跨数据库)

基本信息基本上不需要改变,自己根据实际情况改变

ruoyi-cloud代码生成(跨数据库)

字段信息在数据表设计的时候就设置好啦字段描述,以及当前字段是否允许插入修改等等,使用的是单表生成,通过代码逻辑来维护表之间的关系,提交信息,生成代码即可

ruoyi-cloud代码生成(跨数据库)

 4 代码粘贴

代码生成压缩包解压之后粘贴带对应的路径,执行sql文件即可

文件样子

ruoyi-cloud代码生成(跨数据库)

main文件代表java文件,包含java代码和resouce文件,粘贴到对应的位置即可

ruoyi-cloud代码生成(跨数据库)

ruoyi-cloud代码生成(跨数据库)

resource文件同理,粘贴完成后的样子:

ruoyi-cloud代码生成(跨数据库)

代码生成还有一个sql文件,打开sql文件,复制,到ruoyi-cloud数据库执行sql语句,这里主要是在sys_menu数据表中存入数据,让前端能读取到界面信息。

ruoyi-cloud代码生成(跨数据库)

重启服务,前台后台均重启!!!

后台

ruoyi-cloud代码生成(跨数据库)

前端,ctr+c停止,npm run dev启动 

ruoyi-cloud代码生成(跨数据库)

成功展示,前端根据需要自行修改

ruoyi-cloud代码生成(跨数据库)

如果前端没有启动,报错路径没有找到,可能是网关没有路由,或者是看看vue前端项目路径

以上呢,就是ruoyi-cloud跨数据库生成代码,可以搭配着​若以新增子模块​笔记使用

完结

ruoyi-cloud代码生成(跨数据库)

原创:https://blog.csdn.net/m0_55675518/article/details/126880722?spm=1001.2014.3001.5502