代码生成(树表)

来源:https://cloud.iocoder.cn/new-feature/tree/

友情提示:

本文接 《代码生成【单表】》,请务必先阅读。因为重复的内容,本文会不再赘述!

树表,是在“单表”的基础上,增加了「树形结构」的功能。

树表

例如说:部门、分类等,是一个树形结构。我们可以通过树形结构,来展示部门、分类的层级关系。

下面,我们将演示“树表”的使用,基于代码生成器,在 yudao-module-system 模块中,开发一个【分类】的功能。

1. 数据库表结构设计

设计分类的数据库表名为 system_category,其建表语句如下:

CREATE TABLE `system_category` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名字',
  `parent_id` bigint NOT NULL COMMENT '父级编号',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分类表';

其中 parent_id 字段,用于标识父级分类的编号。如果是顶级分类,则 parent_id0

2. 代码生成

2.1 导入表

点击 [基础设施 -> 代码生成] 菜单,点击 [基于 DB 导入] 按钮,选择 system_category 表,后点击 [确认] 按钮。

2.2 编辑配置

点击 system_category 所在行的 [编辑] 按钮,修改生成配置。后操作如下:

生成信息

2.3 预览代码

点击 system_category 所在行的 [预览] 按钮,在线预览生成的代码,检查是否符合预期。

2.3 生成代码

点击 system_category 所在行的 [生成] 按钮,生成代码。

3. 代码运行

《代码生成【单表】》 的「3. 代码运行」一致,就不重复赘述。