文档相关优化

This commit is contained in:
Zhaoyang 2019-11-04 20:42:27 +08:00
parent 3fa64938b7
commit 6fb9228de5
5 changed files with 69 additions and 92 deletions

View File

@ -42,50 +42,92 @@ RelationsBinder.bind(voList);
List<MyUserVO> voList = RelationsBinder.convertAndBind(userList, MyUserVO.class);
```
## 数据字典关联
* 如果您的实体类中要关联一种数据字典类型的相关数据只需要使用BindDict注解即可实现数据字典的关联。
* 比如您需要关联字典类型为USER_STATUS的数据需要添加到VO类的字段如下所示
## 数据字典关联绑定
:::tip
当表中的字段为数据字典类型的值时,可使用数据字典关联来绑定表字段与数据字典的关联关系。
<br>
在通过diboot-core的封装后数据字典关联时开发者不再需要写大量java代码和SQL关联查询只要使用相关注解即可快速转换值value为标签/名称name。
:::
* 当您需要将数据字典表中的某类数据映射到实体中的对应字段时,可以使用数据字典关联方式来对此建立关联关系。
* 我们提供了**BindDict**注解来进行数据字典关联绑定。
* 使用@BindDict注解时需传两个参数分别是type和field。
* type表示关联的数据字典类型
* field表示关联字段。
* 示例如下:
```java
@BindDict(type="USER_STATUS", field = "status")
private String statusLabel;
```
## 数据表关联
## 数据表关联绑定
* 数据表关联按照关联表的方式上可分为**单数据表直接关联**与**中间表关联**这两种,中间表关联是一种通过中间表进行多对多的关联处理方案。
* 按照得到结果的形式可分为**绑定关联表中对应字段**和**绑定关联表实体**这两种关联方式,前者得到关联表中的目标字段,后者得到关联表的整个实体。
* **绑定关联表实体**即支持绑定单个实体,也支持绑定实体列表。
* 支持对关联查询添加附加条件。
> 直接关联与中间表关联只是传入的参数不同,而绑定表字段与绑定表实体是使用的不同注解。
### 绑定字段关联
> 绑定字段使用**@BindField**注解进行处理,将得到关联表的目标字段的值
* **单数据表直接关联**获取目标字段值,注解及参数示例如下:
### 单表关联
:::tip
当两张表数据之间有直接的依赖关系时,如主外键关联关系,即可使用单表关联。
<br>
在通过diboot-core的封装后
单表关联时开发者不再需要写大量java代码和SQL查询只要使用相关注解即可快速绑定它们之间的关联关系。
<br>
同时关联的实现是拆解关联查询为单表查询,可以更加高效利用数据库缓存和索引,提高查询效率。
:::
### 多表关联
:::tip
当两张表数据之间是通过第三张表来产生依赖关系时,即可使用多表关联。
<br>
在通过diboot-core的封装后多表关联时开发者不再需要写大量java代码和SQL查询只要使用相关注解即可快速绑定它们之间的关联关系。
<br>
同时关联的实现是拆解关联查询为单表查询,可以更加高效利用数据库缓存和索引,提高查询效率。
:::
### 绑定目标字段
> 绑定字段使用**@BindField**注解进行处理,将得到关联表的目标字段的值。
* 使用@BindField注解时需传三个参数分别是entity、field、condition。
* entity表示关联实体
* field表示关联表字段名
* condition表示关联条件。
* 单数据表直接关联 **(单表关联)** 获取目标字段值,用来将数据表中的某个字段映射到实体的对应字段,注解及参数示例如下:
```java
@BindField(entity=Department.class, field="name", condition="department_id=id AND parent_id>=0")
private String deptName;
```
* **通过中间表进行多表关联的级联关联**绑定字段
* 通过中间表进行多表关联的级联关联 **(多表关联)** 绑定字段
```java
@BindField(entity = Organization.class, field="name", condition="this.department_id=department.id AND department.org_id=id")
private String orgName;
```
### 绑定单个关联实体
### 绑定单个实体
> 绑定单个实体使用**@BindEntity**注解进行处理,将得到关联表对应的单个实体。
* **单数据表直接关联**获取目标单个实体,注解及参数示例如下:
* 使用@BindEntity注解时需传两个参数分别是entity和condition。
* entity表示关联实体类
* condition表示关联条件。
* 单数据表直接关联 **(单表关联)** 获取目标单个实体,注解及参数示例如下:
```java
@BindEntity(entity = Department.class, condition="department_id=id")
private Department department;
```
* **通过中间表进行多表关联的级联关联**绑定对应单个实体,示例如下:
* 通过中间表进行多表关联的级联关联 **(多表关联)** 绑定对应单个实体,示例如下:
```java
@BindEntity(entity = Organization.class, condition = "this.department_id=department.id AND department.org_id=id AND department.deleted=0")
@BindEntity(entity = Organization.class, condition = "this.department_id=department.id AND department.org_id=id AND department.is_deleted=0")
private Organization organization;
```
### 绑定实体列表
> 绑定实体列表使用**@BindEntityList**注解进行处理,将得到关联表对应的实体列表。
* **单数据表直接关联**获取目标的实体列表,注解及参数示例如下:
* 使用@BindEntityList注解时需传两个参数分别是entity和condition。
* entity表示关联实体类
* condition表示关联条件。
* 单数据表直接关联 **(单表关联)** 获取目标的实体列表,注解及参数示例如下:
```java
// 关联其他表
@BindEntity(entity = Department.class, condition="department_id=id")
@ -95,8 +137,9 @@ private List<Department> departmentList;
@BindEntityList(entity = Department.class, condition = "id=parent_id")
private List<Department> children;
```
* **通过中间表进行多表关联的级联关联**绑定对应的实体列表,示例如下:
* 通过中间表进行多表关联的级联关联 **(多表关联)** 绑定对应的实体列表,示例如下:
```java
@BindEntityList(entity = Role.class, condition="this.id=user_role.user_id AND user_role.role_id=id")
private List<Role> roleList;
```

View File

@ -1,32 +0,0 @@
# 启动
## 启动项目
以SpringBoot项目在IntelliJ IDEA中的一种启动方式为例
在项目入口文件 `Application` 上点击右键,在弹出的菜单上点击 `RUN 'Application'`
当出现类似下面提示时,表示启动成功:
```
: Started Application in 14.223 seconds (JVM running for 16.693)
```
## 打开管理页面
在控制台(Console)上的启动日志中,找到如下日志:
```
: Diboot devtools v2.0.3 开始初始化 ...
: JDBC Connection [HikariProxyConnection@707108719 wrapping com.mysql.cj.jdbc.ConnectionImpl@7ccf6114] will not be managed by Spring
: devtools UI初始化完成URL: http://localhost:8080/example/diboot.html
: Diboot devtools 初始化完成。
```
其中的`URL`即是管理页面的链接点击即可打开Devtools操作界面。
## 注意
Devtools是用于开发过程的助手工具切勿发布至其他环境。对于非开发需要取消devtools的依赖
方式一(推荐):
非开发环境取消依赖 diboot-devtools-spring-boot-starter改为只依赖 diboot-core-spring-boot-starter
方式二:
在application.properties中增加配置禁用devtools
```
diboot.devtools.disabled=true
```

View File

@ -1,39 +0,0 @@
# 安装&使用
## 引入依赖
* Gradle项目引入依赖
```
compile ("com.diboot:diboot-devtools-spring-boot-starter:2.0.3")
```
* Maven项目引入依赖
```
<dependency>
<groupId>com.diboot</groupId>
<artifactId>diboot-devtools-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
```
## 添加配置信息
* 配置信息示例
```
# Spring 相关配置
spring.main.allow-bean-definition-overriding=true
# diboot-devtools 相关配置
diboot.devtools.codes-version=1.0
diboot.devtools.codes-copyright=MyCompany
diboot.devtools.codes-author=MyName
diboot.devtools.output-path-entity=diboot-example/src/main/java/com/diboot/example/entity/
diboot.devtools.output-path-vo=diboot-example/src/main/java/com/diboot/example/vo/
diboot.devtools.output-path-service=diboot-example/src/main/java/com/diboot/example/service/
diboot.devtools.output-path-mapper=diboot-example/src/main/java/com/diboot/example/mapper/
diboot.devtools.output-path-controller=diboot-example/src/main/java/com/diboot/example/controller/
diboot.devtools.output-path-sql=diboot-example/src/main/resources/
diboot.devtools.enable-lombok=true
#diboot.devtools.enable-swagger=false
```
* 配置信息说明见[开始使用](开始使用.md)
## 初始化数据库
diboot-devtools在初次运行中会自动安装所需数据库表如果已经存在则不做操作。

View File

@ -73,4 +73,15 @@ diboot-devtools在初次运行中会自动安装所需数据库表如果
: devtools UI初始化完成URL: http://localhost:8080/example/diboot.html
: Diboot devtools 初始化完成。
```
其中的`URL`即是管理页面的链接,点击打开即可。
其中的`URL`即是管理页面的链接点击即可打开Devtools操作界面。
## 注意
* Devtools是用于开发过程的助手工具切勿发布至其他环境。对于非开发需要取消devtools的依赖
* 方式一(推荐):
非开发环境取消依赖 diboot-devtools-spring-boot-starter改为只依赖 diboot-core-spring-boot-starter
* 方式二:
在application.properties中增加配置禁用devtools
```
diboot.devtools.disabled=true
```

View File

@ -6,10 +6,6 @@
## 创建数据表
> 点击数据表的列表栏上方"**+**"按钮,打开创建表窗口。可以使用**引导建表**和**SQL建表**两种方式来创建数据库表。
![添加数据表按钮](./images/添加数据表按钮.png)
1. 引导建表
* 数据库表名:建议使用英文小写命名,多个单词以下划线分隔。
@ -92,8 +88,6 @@
::: warning
注:非空字段的样例数据不能为空,并且须严格按照字段的数据类型填写。
:::
### 智能补全
## 关系图
> 显示数据表之间的关联关系,方便开发人员更清晰的了解项目的数据结构。