一、模块简介

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、主要参数
参数默认值应用备注
ucode.code.projectDir用户自定义多模块我的项目须要指定我的项目名
ucode.code.removeTablePrefixfalse依据须要是否在生成代码时移除表前缀
ucode.code.packageNamexin.altitude.front配置用户本人的包名
ucode.code.useLomboktrue默认应用Lombok
ucode.code.filterSysTabletrue默认过滤不显示零碎表
ucode.code.joinQueryfalse是否应用连贯查问(默认单表查问)
ucode.code.xml.addXmlfalse尽管说不倡议应用XML文件编写SQL,但仍进步可开启开关
ucode.code.mapper.useCachetrue默认开启二级缓存,自定义业务缓存可敞开

四、常见问题

1、找不到依赖?

找不到依赖很大可能是因为阿里云现象仓库尚未同步实现Jar包,在我的项目中pom文件增加如下配置:

<repository>    <id>public</id>    <name>maven nexus</name>    <url>https://repo1.maven.org/maven2/</url>    <snapshots>        <updatePolicy>always</updatePolicy>    </snapshots>    <releases>        <updatePolicy>always</updatePolicy>    </releases></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站 ,本文珍藏在博客天地 。