# base-generator **Repository Path**: xiaochangkun/base-generator ## Basic Information - **Project Name**: base-generator - **Description**: 基础代码生成器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-05-05 - **Last Updated**: 2024-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 代码生成器 ## 简介 - `base-generator` 是基于 `mybatis-plus代码风格` 通过 `velocity模板` 实现的自定义代码生成器,只做基础代码生成,提升开发效率,定义代码规范。 - 暂时只支持生成mysql、oracle、sqlserver、postgresql表。 - 支持controller、service、dao、xml、model(Entity、SaveDTO、UpdatDTO、PageQuery、Enum、MapStruct对象映射)等模板代码生成 ## 使用规则 - 修改生成规则: 编辑`generator.properties`配置文件,根据实际情况进行调整,一般仅调整 `包名`、`作者`、`表前缀` 三项即可。 - 修改数据源:编辑`application.yml`配置文件,调整为本地数据库配置即可。 - 运行`GeneratorApplication`。 - 访问 localhost:8080 ## 数据库设计原则 - 必须显式指定`主键` - 任何表至少包含3个字段: bigint id、 datetime create_time、bigint created_by (可以自行修改 EntityType) - 表、字段 必须加注释,且注释中所有”标点符号“必须使用”全英文符号“ - 表名注释支持换行,第一行会被视为表名。 表的介绍请换行填写。 - 字段的第一行视为字段简介,详细介绍和枚举类型请换行 - 所有字段尽量根据业务设置合理的`缺省值`,尽量避免表中出现 NULL值 - 当字段为外键时,字段名为: 关联表_id, 注释需要在字段注释的基础上,换行加上 `#关联表表名` 来说明关联的哪张表。(注意英文#号) - 当字段为枚举时,需按照模板配置:(注意使用英文符号) ``` (注意: 注释内容 需要替换成当前字段的具体注释,所有”标点符号“必须全部使用”英文符号“) 注释模板1: 注释内容 #枚举类名{枚举值英文名:枚举值英文注释; ...} 注释模板2: 注释内容 #枚举类名{枚举值英文名:val,枚举值英文注释; ...} 注释模板3: 注释内容 #{枚举值英文名:枚举值英文注释; ...} 其中枚举类名可以没有,如果没有,则生成的枚举值名为:表对应的实体类名 + 当前字段对应的属性名(首字母大写) + Enum 枚举值例子: 文件类型 #FileType{PAN:云盘数据;API:接口数据} 数据类型 #DataType{DIR:1,目录;IMAGE:2,图片;VIDEO:3,视频;AUDIO:4,音频;DOC:5,文档;OTHER:6,其他} 数据类型 #{DIR:目录;IMAGE:图片;VIDEO:视频;AUDIO:音频;DOC:文档;OTHER:其他} ``` 完整例子: ``` CREATE TABLE `file_dev`.`f_file` ( `id` bigint(20) NOT NULL COMMENT '主键', `data_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'IMAGE' COMMENT '数据类型\n#DataType{DIR:目录;IMAGE:图片;VIDEO:视频;AUDIO:音频;DOC:文档;OTHER:其他}', `submitted_file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '原始文件名', `grade` int(11) NULL DEFAULT 1 COMMENT '层级等级\n从1开始计算', `is_delete` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除\n(0=未删除, 1=已删除)', `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件访问链接\n需要通过nginx配置路由,才能访问', `size` bigint(20) NULL DEFAULT 0 COMMENT '文件大小\n单位字节', `folder_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '父文件夹名称', `group_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'FastDFS组\n用于FastDFS', `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'FastDFS远程文件名\n用于FastDFS', `relative_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件的相对路径 ', `file_md5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'md5值', `context_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件类型\n取上传文件的值', `filename` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '唯一文件名', `ext` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件名后缀 \n(没有.)', `icon` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '文件图标\n用于云盘显示', `create_month` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时年月\n格式:yyyy-MM 用于统计', `create_week` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时年周\nyyyy-ww 用于统计', `create_day` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时年月日\n格式: yyyy-MM-dd 用于统计', `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', `created_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', `update_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间', `updated_by` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人', PRIMARY KEY (`id`) USING BTREE, FULLTEXT INDEX `FU_TREE_PATH`(`tree_path`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文件表' ROW_FORMAT = Dynamic; ```