1、功能亮点

实时读取库表结构元数据信息,比如表名、字段名、字段类型、注释等,选中修改后的表,点击 一键生成 ,代码成即可提现出表结构的变化。

单表快速转化restful风格的API接口并对外暴露服务。对于百余张表的数据库,使用代码生成器让开发事半功倍。

多表连接查询。多表连接查询默认不开启,需要在全局文件中手动配置。

开启多表连接查询后,代码生成器会自动读取数据库元数据信息中的 主外键关系 ,分别生成 一对一 一对多 多对多 风格的源代码。

生成的代码接口可通过Swagger暴露。

2、运行依赖服务

代码生成器运行依赖 Mysql数据库 ,版本不限。

  • Mysql数据库
  • Mysql数据库中库表结构为用户自定义的库表,代码生成将会读取。项目SQL脚本提供5张测试表,方便用于测试使用。

    3、代码生成器2.0

    代码生成器升级内容如下:

  • 移除Redis服务强依赖
  • 移除登陆依赖
  • 移除系统SQL脚本依赖
  • 当前代码生成器属于2.0版本。

    二、两种典型使用场景

    (一)克隆Demo项目

    使用demo脚手架 cms demo项目 ,脚手架是标准的Spring Web工程,稍微修改配置文件可快速入门上手。

    # 拉去脚手架,并初始化项目
    git clone https://gitee.com/decsa/demo-code.git
    1、修改数据库连接配置

    运行测试SQL脚本,添加数据库表结构,开始体验代码生成的功能。

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/ucode-cms
        username: root
        password: 123456
    2、添加依赖

    检查pom文件中是否包含代码生成器Maven包依赖,如果没有,则添加如下依赖

    <dependency>
        <groupId>xin.altitude.cms</groupId>
        <artifactId>ucode-cms-code-spring-boot-starter</artifactId>
        <version>1.5.6.1</version>
    </dependency>
    3、可视化界面

    配置完上述连接后,启动项目。访问 http://localhost:8080 进入控制台界面。

    点击免登录进入代码生成器,进入管理界面。

    勾选表结构,点击生成,重启项目,相应的代码生效。

    4、重启项目

    访问地址 http://localhost:8080/doc.html 访问接口列表。

    (二)独立创建项目

    独立创建项目支持从零构建代码生成器运行环境,既支持嵌入已存在的项目中,也支持新创建的项目。2.0版本重点优化此部分内容。

    1、添加依赖
    <!--代码本地化生成依赖-->
    <dependency>
        <groupId>xin.altitude.cms</groupId>
        <artifactId>ucode-cms-code-spring-boot-starter</artifactId>
        <version>1.5.6.1</version>
    </dependency>

    如果使用代码生成器功能,则代码本地化生成依赖为必选项。

    2、配置数据库连接

    数据库连接配置对应的数据库应包含带生成代码的库表结构。

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/ucode-cms
        username: root
        password: 123456
    3、启动项目

    启动项目后,访问 http://localhost:8080 进入代码生成器控制台界面。

    选中对应表,点击生成代码,在项目中便新添相应的代码。

    再次重启项目,访问 http://localhost:8080/doc.html 查看接口列表。

    三、高级使用

    在完成简单入门体验后,需要了解代码生成的高级部分,即全局配置。在项目中搜索类名 CodeProperties 即可查看所有内置可供修改的参数,在全局 yml 文件中覆盖默认值即可完成修改,按需配置。

    1、单表处理

    当全局配置 ucode.code.joinQuery = false 或者使用默认配置时,则仅处理单表结构。将表名、字段名、字段类型、备注信息转化为SSM风格的源代码。

    2、多表连接

    当在全局配置 ucode.code.joinQuery = true 时,则手动开启主外键查询,系统会自动读取表的主外键关系,并将其转化为连接查询的源代码。

    3、主要参数
    </repository>
    2、项目打包发布时如何处理代码生成器依赖?

    项目打包发布时建议手动移除代码生成器依赖,实际上代码生成器的生命周期存在于开发阶段。手动不移除对打包不会产生影响,但仍然建议在打包时移除代码生成器依赖。

    <!--代码生成器模块(非必选)-->
    <dependency>
        <groupId>xin.altitude.cms</groupId>
        <artifactId>ucode-cms-code-spring-boot-starter</artifactId>
        <version>1.5.6.1</version>
    </dependency>
    3、多表连接查询异常

    对表连接查询是一项复杂的业务,目前支持:一个员工对应一个部门(一对一)、一个部门对应多个员工(一对多)、一名学生可选修多门课程每门课程可被多名学生选修(多对多)。
    更高级别的套娃尚不支持。

    4、生成后的代码能无缝迁移到新项目吗?

    能。生成的代码具有高度的迁移属性,在新项目中导入缺省依赖即可。如果找不到相关依赖,请参考问题一。

    如有疑问,可通过微信 dream4s 与作者联系。源码在 GitHub ,视频讲解在 B站 ,本文收藏在 博客天地