文档相关优化
This commit is contained in:
parent
3fa64938b7
commit
6fb9228de5
|
@ -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;
|
||||
```
|
||||
|
||||
|
|
|
@ -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
|
||||
```
|
||||
|
|
@ -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在初次运行中,会自动安装所需数据库表,如果已经存在,则不做操作。
|
|
@ -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
|
||||
```
|
||||
|
|
|
@ -6,10 +6,6 @@
|
|||
## 创建数据表
|
||||
> 点击数据表的列表栏上方"**+**"按钮,打开创建表窗口。可以使用**引导建表**和**SQL建表**两种方式来创建数据库表。
|
||||
|
||||
![添加数据表按钮](./images/添加数据表按钮.png)
|
||||
|
||||
|
||||
|
||||
1. 引导建表
|
||||
|
||||
* 数据库表名:建议使用英文小写命名,多个单词以下划线分隔。
|
||||
|
@ -92,8 +88,6 @@
|
|||
::: warning
|
||||
注:非空字段的样例数据不能为空,并且须严格按照字段的数据类型填写。
|
||||
:::
|
||||
|
||||
### 智能补全
|
||||
|
||||
## 关系图
|
||||
> 显示数据表之间的关联关系,方便开发人员更清晰的了解项目的数据结构。
|
||||
|
|
Loading…
Reference in New Issue