# 六、命名转换

针对数据库的命名字段风格和系统内部的命名风格不一样，这里增加了风格转换（有借鉴其他框架思想，具体实现不同）。其中风格转换主要就是基于NeoMap进行风格转换，NeoMap默认就是跟DB中的字段保持一致的，而转换到具体的实体中，则需要进行转换

## 1.转换风格 <a href="#zhuan-huan-feng-ge" id="zhuan-huan-feng-ge"></a>

项目中设定的风格为如下基本这些，而更多的转换，则可以将相互的风格再嵌套即可扩展更多

| 转换类型         | 风格1               | 风格2                       |
| ------------ | ----------------- | ------------------------- |
| DEFAULT      | 风格不转换             |                           |
| BIGCAMEL     | 小驼峰（dataBaseUser） | 大驼峰（DataBaseUser）         |
| UNDERLINE    | 小驼峰（dataBaseUser） | 下划线（data\_base\_user）     |
| PREUNDER     | 小驼峰（dataBaseUser） | 前下划线（\_data\_base\_user）  |
| POSTUNDER    | 小驼峰（dataBaseUser） | 后下划线（data*base\_user*）    |
| PREPOSTUNDER | 小驼峰（dataBaseUser） | 前后下划线（*data\_base\_user*） |
| MIDDLELINE   | 小驼峰（dataBaseUser） | 中划线（data-base-user）       |
| UPPERUNER    | 小驼峰（dataBaseUser） | 大写下划线（DATA\_BASE\_USER）   |
| UPPERMIDDLE  | 小驼峰（dataBaseUser） | 大写中划线（DATA-BASE-USER）     |

## 2.NeoMap设置 <a href="#neomap-she-zhi" id="neomap-she-zhi"></a>

对于NeoMap和实体转换时候需要设定风格，可以每次都在函数中添加转换，也可以设定全局转换&#x20;

### 单独设置 <a href="#dan-du-she-zhi" id="dan-du-she-zhi"></a>

在实体entity作为参数的时候，一般情况下后面都会有一个参数是namingChg，这个参数是用于entity向NeoMap转换。\
**注意：**\
其中转换函数有两个：一个是风格1向风格2转换，一个是风格2向风格1转换，对于实体向NeoMap则是采用风格1向风格2转换函数，而NeoMap向entity转换也是用到风格1向风格2的函数，只是用该函数获取字段，然后对字段赋值而已，只有特殊情况下才会用到风格2向风格1的转换。这些都不需要使用者关心，只需要知道一下即可。&#x20;

### 全局设置 <a href="#quan-ju-she-zhi" id="quan-ju-she-zhi"></a>

如果我们不想每次都那么麻烦的转换，则可以对NeoMap设置全局转换

```java
public static void setDefaultNamingChg(NamingChg namingChg) {}
```

**注意：**\
一旦设置了，所有的NeoMap到实体的转换都是用这个转换方式了
