# 代码生成
- - -
## 功能介绍

### 数据源配置

![输入图片说明](https://foruda.gitee.com/images/1678976867341325193/a2be0608_1766278.png "屏幕截图")

<font size="4">**项目适配多种类型数据库 可以在代码生成页面切换**</font><br>

> 填写对应的数据源名称 点击搜索按钮 即可切换到对应的数据源<br>

![输入图片说明](https://foruda.gitee.com/images/1678976876081856486/4ef4841c_1766278.png "屏幕截图")

<font size="4">**>= 2.2.1版本 项目支持100+种数据库适配 在代码生成模块增加对应的数据库依赖即可**</font><br>

![输入图片说明](https://foruda.gitee.com/images/1722396530340741054/3914eb72_1766278.png "屏幕截图")


### 导入数据表

> 点击导入按钮 会加载系统数据库所有的表<br>

![输入图片说明](https://foruda.gitee.com/images/1678976880393939803/3ecf1dcc_1766278.png "屏幕截图")

> 选择需要的表 点击确定即可<br>

![输入图片说明](https://foruda.gitee.com/images/1678976885370716109/4834faa5_1766278.png "屏幕截图")<br>
![输入图片说明](https://foruda.gitee.com/images/1678976891856866728/853420d9_1766278.png "屏幕截图")

### 编辑表生成结构

> 点击表对应的编辑按钮<br>

![输入图片说明](https://foruda.gitee.com/images/1678976899111822310/aeaa33f9_1766278.png "屏幕截图")

> 更改要生成表的数据<br>

![输入图片说明](https://foruda.gitee.com/images/1678976903345795925/4326f6ee_1766278.png "屏幕截图")<br>
![输入图片说明](https://foruda.gitee.com/images/1678976908897387614/4cdf939b_1766278.png "屏幕截图")

### 生成条件影响

![输入图片说明](https://foruda.gitee.com/images/1678976913809284051/24da09b0_1766278.png "屏幕截图")


* `插入` `编辑` 影响生成 BO 类 与 前端添加编辑页面 是否有该字段
* `列表` 影响生成 VO 类 与 前端列表页面展示 是否有该字段
* `查询` 影响 前端页面是否有该字段的搜索框 与 后端代码是否生成对应的查询条件
* `查询方式` 影响生成查询条件的类型
* `必填` 影响 BO 类 与 页面是否强制校验
* `显示类型` 影响生成页面使用何种展示组件
* `字典类型` 影响页面是否生成与字典的关联

### 树表配置

> 编辑表生成信息 生成模板为 `树表` 填写对应数据即可<br>

![输入图片说明](https://foruda.gitee.com/images/1678976917918548901/f5886c5c_1766278.png "屏幕截图")

### 主子表说明

框架不支持也不推荐使用主子表<br>
原因一般业务场景 基本都是一对N表 多表关联场景<br>
还有一些 主 => 子 <= 主 场景 需求很复杂 很少有单纯主子表场景出现<br>
另外主子表关联 很容易出现 笛卡尔积 或者数据错乱等问题 需要自行sql调优场景<br>
所以建议大家都按照 单表生成 自行编写业务逻辑

### 预览功能

> 配置好生成信息后 可以点击预览按钮<br>

![输入图片说明](https://foruda.gitee.com/images/1678976924411765532/2e9747df_1766278.png "屏幕截图")

> 系统会根据已经配置好的数据 生成对应的代码预览<br>
> 可以再此处观察代码的生成结构和数据是否正确等<br>

![输入图片说明](https://foruda.gitee.com/images/1678976945982406065/ca7383bb_1766278.png "屏幕截图")


### 代码结构同步

> 实际开发中 难免会有表结构更改的需求<br>
> 这时可以使用 同步功能 点击同步按钮 即可与实时数据库表进行字段同步<br>

![输入图片说明](https://foruda.gitee.com/images/1678976952919156537/3c47c078_1766278.png "屏幕截图")
