Skip to content

Commit bfd832d

Browse files
committed
Java:MultiDataSource 新增字段映射配置实例
1 parent da7145d commit bfd832d

2 files changed

Lines changed: 29 additions & 2 deletions

File tree

‎APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoApplication.java‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import apijson.fastjson2.APIJSONApplication;
1818
import apijson.fastjson2.APIJSONCreator;
1919
import apijson.fastjson2.APIJSONVerifier;
20+
import apijson.fastjson2.APIJSONSQLConfig;
2021
import apijson.orm.AbstractParser;
2122
import apijson.orm.AbstractVerifier;
2223
import org.springframework.boot.SpringApplication;
@@ -83,9 +84,9 @@ public static void main(String[] args) throws Exception {
8384
//unitauto.Log.DEBUG = true;
8485
Log.DEBUG = true; // 是否开启调试模式(打印详细日志、返回详细调试信息等)
8586
AbstractParser.IS_PRINT_BIG_LOG = true; // 是否打印大日志
86-
APIJSONVerifier.ENABLE_APIJSON_ROUTER = true; // 是否开启 接口路由 模式,支持简单接口转为 APIJSON JSON
87+
APIJSONVerifier.ENABLE_APIJSON_ROUTER = true; // apijson-framework 已集成字段插件 apijson-router,是否开启 接口路由 模式,支持简单接口转为 APIJSON JSON
8788
//APIJSONParser.IS_START_FROM_1 = true; // 分页页码是否从 1 开始,true - 从 1 开始;false - 从 0 开始
88-
//APIJSONSQLConfig.ENABLE_COLUMN_CONFIG = true; // apijson-framework 已集成字段插件 apijson-column,支持 !key 反选字段 和 字段名映射
89+
APIJSONSQLConfig.ENABLE_COLUMN_CONFIG = true; // apijson-framework 已集成字段插件 apijson-column,支持 !key 反选字段 和 字段名映射
8990
APIJSONApplication.init();
9091
System.out.println("\n\n<<<<<<<<< 本 Demo 在 resources/static 内置了 APIAuto,Chrome/Firefox 打开 http://localhost:8080 即可调试(端口号根据项目配置而定) ^_^ >>>>>>>>>\n");
9192
}

‎APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoSQLConfig.java‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,32 @@ public String getUserIdKey(String database, String schema, String datasource, St
145145
RAW_MAP.put("(CASE WHEN package LIKE '*%' THEN substr(package,2) ELSE package END) `url`", ""); // UnitAuto 获取分组
146146
RAW_MAP.put("(CASE WHEN package LIKE '*%' THEN substr(package,2) ELSE package END) `groupUrl`", ""); // UnitAuto 获取分组
147147
RAW_MAP.put("(CASE WHEN package LIKE '*%' THEN substr(package,2) ELSE package END):groupUrl", "(CASE WHEN package LIKE '*%' THEN substr(package,2) ELSE package END) `groupUrl`"); // UnitAuto 获取分组
148+
149+
// 反选字段配置
150+
Map<String, List<String>> tableColumnMap = new HashMap<>();
151+
tableColumnMap.put("User", Arrays.asList(StringUtil.split("id,sex,name,tag,head,contactIdList,pictureList,date")));
152+
// 需要对应方法传参也是这样拼接才行,例如 ColumnUtil.compatInputColumn(column, getSQLDatabase() + "-" + getSQLSchema() + "-" + getTable(), getMethod());
153+
tableColumnMap.put("MYSQL-sys-Privacy", Arrays.asList(StringUtil.split("id,certified,phone,balance,_password,_payPassword")));
154+
ColumnUtil.VERSIONED_TABLE_COLUMN_MAP.put(null, tableColumnMap);
155+
156+
// 字段名映射配置 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
157+
Map<String, Map<String, String>> tableKeyColumnMap = new HashMap<>();
158+
159+
Map<String, String> userKeyColumnMap = new HashMap<>();
160+
userKeyColumnMap.put("gender", "sex");
161+
userKeyColumnMap.put("createTime", "date");
162+
tableKeyColumnMap.put("User", userKeyColumnMap);
163+
164+
Map<String, String> privacyKeyColumnMap = new HashMap<>();
165+
privacyKeyColumnMap.put("rest", "balance");
166+
// 需要对应方法传参也是这样拼接才行,例如 ColumnUtil.compatInputKey(super.getKey(key), getSQLDatabase() + "-" + getSQLSchema() + "-" + getTable(), getMethod());
167+
tableKeyColumnMap.put("MYSQL-sys-Privacy", privacyKeyColumnMap);
168+
169+
ColumnUtil.VERSIONED_KEY_COLUMN_MAP.put(null, tableKeyColumnMap);
170+
// 字段名映射配置 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
171+
172+
ColumnUtil.init();
173+
148174
}
149175

150176

0 commit comments

Comments
 (0)