From 82df403788513126ed0a6c8623f9a05b8bd6e50a Mon Sep 17 00:00:00 2001 From: Zhaoyang Date: Thu, 9 Jul 2020 10:11:33 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E7=8E=B0=E6=9C=89devtool?= =?UTF-8?q?s=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../diboot-devtools/images/er_example.jpg | Bin 0 -> 103928 bytes diboot-docs/guide/diboot-devtools/介绍.md | 6 ++++-- diboot-docs/guide/diboot-devtools/开始使用.md | 6 +++--- .../guide/diboot-devtools/数据表管理.md | 4 +++- 4 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 diboot-docs/guide/diboot-devtools/images/er_example.jpg diff --git a/diboot-docs/guide/diboot-devtools/images/er_example.jpg b/diboot-docs/guide/diboot-devtools/images/er_example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f9936b8a8a3f57370d44330658587b8561d50c7 GIT binary patch literal 103928 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

LsXPwFg! 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%0AHV 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 literal 0 HcmV?d00001 diff --git a/diboot-docs/guide/diboot-devtools/介绍.md b/diboot-docs/guide/diboot-devtools/介绍.md index 540041e..4bf7143 100644 --- a/diboot-docs/guide/diboot-devtools/介绍.md +++ b/diboot-docs/guide/diboot-devtools/介绍.md @@ -9,12 +9,14 @@ > **diboot-devtools - 将复杂的事情简单化,重复的事情自动化** ## diboot-devtools 的核心特性 -* 支持多数据库(MySQL、MariaDB、PostgreSQL、ORACLE、SQLServer) +* 支持多种数据库(MySQL、MariaDB、PostgreSQL、ORACLE、SQLServer) * 使用很简单(UI界面操作,引入依赖,配置参数后,即可随SpringBoot本地项目启动运行) -* 功能很强大(数据结构变更与代码联动同步,一键生成&非覆盖式更新后端代码,一键生成前端功能代码,自动记录变更SQL、维护索引) +* 功能很强大(数据结构变更与代码联动同步,一键生成&非覆盖式更新后端代码,自动记录变更SQL、维护索引,一键生成前端功能代码,自动进行前后端权限绑定,自动完成数据关联相关前后端工作,ER图展示关联关系等) * 单表与联表场景完整CRUD功能前后端代码完全自动生成,无需手写代码 * SQL与代码很标准(devtools标准化了数据结构定义与代码实现,降低维护成本) * 配置很灵活(可按需配置生成代码路径、是否启用`Lombok`、`Swagger`等) +* 开发很快捷(即便需要自己编写代码来实现特定业务逻辑,也能依赖我们生成的标准基础代码来快速完成) +* 使用很省心(能自动化处理的我们都会自动化帮您搞定,让您省心) * 代码基于diboot高效基础框架生成,是diboot的最佳实践 ## devtools支持的数据库版本 diff --git a/diboot-docs/guide/diboot-devtools/开始使用.md b/diboot-docs/guide/diboot-devtools/开始使用.md index 2469d39..9424365 100644 --- a/diboot-docs/guide/diboot-devtools/开始使用.md +++ b/diboot-docs/guide/diboot-devtools/开始使用.md @@ -3,7 +3,7 @@ 推荐使用 [Spring Initializer](https://start.spring.io/),快速初始化一个 Spring Boot 工程。 如果您使用IntelliJ IDEA,可以直接通过菜单: File -> New -> Project -> Spring Initializr 创建。 -> 如果需要生成前端,需下载前端项目: [diboot-element-admin](https://github.com/dibo-software/diboot-element-admin) 或 [diboot-antd-admin](https://github.com/dibo-software/diboot-antd-admin) +> 如果需要生成前端,需根据相关版本下载对应的前端项目: [diboot-element-admin](https://github.com/dibo-software/diboot-element-admin/releases) 或 [diboot-antd-admin](https://github.com/dibo-software/diboot-antd-admin/releases) ## 2. 引入依赖 * Gradle项目引入依赖 @@ -54,7 +54,7 @@ diboot.devtools.output-path-sql=example/src/main/resources/ diboot.devtools.enable-lombok=true #diboot.devtools.enable-swagger=false #diboot.devtools.generate-mapper-xml=false -# 前端项目路径(diboot-element-admin 或 diboot-antd-admin项目) +# 前端项目路径(diboot-element-admin 或 diboot-antd-admin项目,此处如果与后端项目为同一项目下不同模块,可只配置模块名,否则需要配置绝对路径,即全路径) diboot.devtools.output-path-frontend=/D:/Workspace/diboot/diboot-antd-admin/ ~~~ @@ -72,7 +72,7 @@ diboot.devtools.output-path-frontend=/D:/Workspace/diboot/diboot-antd-admin/ * generate-mapper-xml:是否生成Mapper.xml文件,默认true * enable-lombok:是否引入`Lombok`注解,若设置true,请注意添加Lombok依赖。 * enable-swagger:是否引入`Swagger`注解,若设置true,请注意添加Swagger依赖。 - * output-path-frontend:前端Vue项目路径,用于前端代码生成。前端项目下载: [diboot-element-admin](https://github.com/dibo-software/diboot-element-admin) 或 [diboot-antd-admin](https://github.com/dibo-software/diboot-antd-admin) + * output-path-frontend:前端Vue项目路径,用于前端代码生成(此处如果与后端项目为同一项目下不同模块,可只配置模块名,否则需要配置绝对路径,即全路径)。前端项目下载: [diboot-element-admin](https://github.com/dibo-software/diboot-element-admin) 或 [diboot-antd-admin](https://github.com/dibo-software/diboot-antd-admin) :::warning 如果您使用的是**PostgreSQL数据库**,那么需要额外添加两行配置,以此来适配boolean类型字段所对应的数据库的boolean类型,需添加的配置如下: diff --git a/diboot-docs/guide/diboot-devtools/数据表管理.md b/diboot-docs/guide/diboot-devtools/数据表管理.md index 72aba87..8d8e3e5 100644 --- a/diboot-docs/guide/diboot-devtools/数据表管理.md +++ b/diboot-docs/guide/diboot-devtools/数据表管理.md @@ -96,7 +96,7 @@ 填写样例数据,方便后续的开发调试。 ::: warning - 注:非空字段的样例数据不能为空,并且须严格按照字段的数据类型填写。 + 注:在2.0.x版本中,非空字段的样例数据不能为空,并且须严格按照字段的数据类型填写。在2.1.x版本中,非空字段的样例数据可以被自动填充个,也可以自己填写。 ::: ## 关联配置 @@ -105,3 +105,5 @@ ## 关系图 > 显示数据表之间的关联关系,方便开发人员清晰的了解项目的数据模型。 + +![关联配置示例](./images/er_example.jpg) From aefbe5ae02c86ac4ddf5a3639ea0419999ab5ccf Mon Sep 17 00:00:00 2001 From: mazhicheng Date: Thu, 9 Jul 2020 12:31:13 +0800 Subject: [PATCH 2/2] update doc --- diboot-docs/guide/diboot-devtools/介绍.md | 2 +- diboot-docs/guide/diboot-devtools/开始使用.md | 39 ++++++++++++++++++- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/diboot-docs/guide/diboot-devtools/介绍.md b/diboot-docs/guide/diboot-devtools/介绍.md index 4bf7143..0e24f17 100644 --- a/diboot-docs/guide/diboot-devtools/介绍.md +++ b/diboot-docs/guide/diboot-devtools/介绍.md @@ -4,7 +4,7 @@ > 众多开发团队现状: 效率低、质量差、可维护性差,我们也常听到开发者抱怨每天CRUD、工作就是搬砖。 -> diboot-devtools 是面向Java开发人员的自动化助理,有了她,你可以彻底摆脱CRUD等重复性的工作,专注于数据结构设计、业务实现,提高软件的质量、效率、可维护性。 +> diboot-devtools 是面向Java开发人员的自动化助理,有了她,你可以彻底摆脱常规SQL与CRUD等重复性的工作,专注于数据结构设计、业务实现,提高软件的质量、效率、可维护性。 > **diboot-devtools - 将复杂的事情简单化,重复的事情自动化** diff --git a/diboot-docs/guide/diboot-devtools/开始使用.md b/diboot-docs/guide/diboot-devtools/开始使用.md index 9424365..95bb4b0 100644 --- a/diboot-docs/guide/diboot-devtools/开始使用.md +++ b/diboot-docs/guide/diboot-devtools/开始使用.md @@ -22,9 +22,28 @@ providedCompile("com.diboot:diboot-devtools-spring-boot-starter:{latestVersion}" com.diboot diboot-devtools-spring-boot-starter {latestVersion} - provided + provided ``` +如果spring boot项目需要打jar包运行,则需要参考如下配置确保打包时剔除devtools: +~~~ + + + org.springframework.boot + spring-boot-maven-plugin + + + + + com.diboot + diboot-devtools-spring-boot-starter + + + + + +~~~ + > diboot-devtools-spring-boot-starter 是用于开发过程的助手工具,须声明 **provided**以免打包至非开发环境。 ## 3. 添加配置信息 @@ -111,11 +130,27 @@ diboot-devtools在初次运行中,会自动检测安装以diboot_前缀的数 ``` * Maven配置 ``` + // dependency节点 com.diboot diboot-devtools-spring-boot-starter - provided + provided + + //plugins节点配置 + + org.springframework.boot + spring-boot-maven-plugin + + + + + com.diboot + diboot-devtools-spring-boot-starter + + + + ``` * 方式二(为devtools创建专属项目,与代码项目隔离开):