Skip to content

代码工具

  • 满足个性化需求 不同的项目有不同的编码规范和业务逻辑需求。通过自定义模板,开发者可以生成符合项目规范的代码,避免因默认模板不符合需求而进行大量手动修改。
  • 提高开发效率 自定义模板允许开发者预先定义代码结构和逻辑,减少重复性工作,提高代码生成的效率和质量。特别是在需要生成大量相似代码的场景下,自定义模板的优势尤为明显。
  • 促进代码一致性 通过统一的自定义模板,可以确保生成的代码在风格、结构和逻辑上保持一致,提升代码的可读性和维护性。
  • 支持扩展性 自定义模板功能为项目的未来发展预留了扩展空间。开发者可以根据项目需求的变化,随时调整和优化模板内容,确保代码生成始终符合项目发展的需要。

规范表结构

  1. 表名命名规范
使用小写字母:表名通常使用小写字母,且不使用复数形式。
示例:user, order, product。

使用下划线分隔:表名中的单词之间用下划线 _ 分隔。
示例:user_info, order_detail。

避免保留字:避免使用数据库保留字(如 user, group, key 等)作为表名。
  1. 字段命名规范
使用小写字母:字段名使用小写字母,且不使用复数形式。
示例:user_id, order_time。

使用下划线分隔:字段名中的单词之间用下划线 _ 分隔。
示例:first_name, last_login_time。

主键字段:主键字段通常命名为 id,并使用自增类型。
示例:id。

外键字段:外键字段通常使用关联表名 + _id 的命名方式。
示例:user_id(关联 user 表的 id)。
  1. 数据表案例

代码生成工具的原理是动态解析数据表结构,根据字段名、字段类型、字段注释等信息解析并创建数据表对应模块的 CURD 功能,以下述 sys_example 数据表为例:

CREATE TABLE `sys_example` (
  `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '职级ID',
  `tenant_id` int unsigned NOT NULL DEFAULT '0' COMMENT '租户ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '职级名称',
  `status` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '职级状态:1-正常 2-停用',
  `sort` int unsigned NOT NULL DEFAULT '0' COMMENT '职级排序',
  `create_user` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '添加人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_user` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `del_flag` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '删除标识:0-有效 1-删除',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_name` (`name`) USING BTREE COMMENT '职级名称',
  KEY `idx_tenant_id` (`tenant_id`) USING BTREE COMMENT '租户ID'
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPACT COMMENT='职级表';

可视化工具

为了便捷、灵活、快速的实现模块文件和代码的一键生成,软件本身内置了代码生成器可视化工具模块,可以根据需要执行单表生成和多表批量生成。

代码工具

单个生成

为了便捷、灵活、快速的实现模块文件和代码的一键生成,软件本身内置了代码生成器可视化工具模块,可以选择需要生成的数据表,一键生成即可。

代码工具

如上图所示,根据条件筛选出待生成模块的数据表,点击操作栏中的 一键生成 按钮执行模块文件生成即可。

/**
  * 一键生成
  *
  * @param generatorTableDTO 参数
  * @return 返回结果
  */
@Operation(summary = "一键生成", description = "一键生成")
@RequestLog(title = "一键生成", type = RequestType.GENERATE)
@PreAuthorize("@pms.hasAuthority('sys:generator:generator')")
@PostMapping("/generator")
public R generator(@RequestBody @Validated GeneratorTableDTO generatorTableDTO) {
    String[] tableNames = generatorTableDTO.getTableNames();
    return generatorService.generator(tableNames);
}

批量生成

为了便捷、灵活、快速的实现模块文件和代码的一键生成,软件本身内置了代码生成器可视化工具模块,可以选择需要生成的数据表,一键生成即可。

代码工具

如上图所示,根据条件筛选出待生成模块的数据表,可以选择多个数据表后点击 一键生成 按钮执行模块文件生成即可。

/**
  * 批量生成
  *
  * @param generatorTableDTO 参数
  * @return 返回结果
  */
@Operation(summary = "批量生成", description = "批量生成")
@RequestLog(title = "批量生成", type = RequestType.GENERATE)
@PreAuthorize("@pms.hasAuthority('sys:generator:batchGenerator')")
@PostMapping("/batchGenerate")
public R batchGenerate(@RequestBody @Validated GeneratorTableDTO generatorTableDTO) {
    return generatorService.generator(generatorTableDTO.getTableNames());
}

总结

自定义代码生成器工具可以显著提高开发效率,减少重复劳动。通过模板引擎和元数据解析,可以灵活生成各种代码文件。根据项目需求,可以选择合适的工具和实现方式,进一步扩展生成器的功能。

特别说明

目前系统中已集成的模块由工程师编码完成,切勿选择代码生成器工具中的数据表去再次生成,防止文件和代码被覆盖,导致无法正常运行。

在添加新模块时,请务必规范的建立表结构、表字段名、表字段注释等。有一点需要特别提醒的是,数据表名尽量使用单个英文单词,如果数据表名是复词时,因为生成器本身无法自动识别,因此生成后的文件,尤其是前端Vue文件的组件命令需要您根据实际情况进行手动调整,否则会因为命令问题无法找到对应的组件文件,导致启动运行报错,切记!

小蚂蚁云团队 · 提供技术支持

小蚂蚁云 新品首发
新品首发,限时特惠,抢购从速! 全场95折
赋能开发者,助理企业发展,提供全方位数据中台解决方案。
获取官方授权