前言
从mysql 获得数据用List<JSONObject>接收数据,新增mongodb之后如何保证字段类型与数据库类型保持一致。用List<JSONObject>接收是因为 该表是动态维护,表字段可以随时更改。
分析
1.获得该表所有的字段与字段类型放入List<JSONObject>
2.新建一个枚举类 让mysql 的字段类型与mongodb字段类型做个映射
3.判断该字段转成什么类型代码实现
1.获得表字段与字段类型
@Override
public List<JSONObject> getCloumnInfors(Long conditionsId, String tabeName) {
List<JSONObject> cloumnInfors = new ArrayList<>();
// 获取目标表的字段与字段类型
List<JSONObject> targetCloumsInfors = strategyConditionsService.getTargetCloumnAndType(conditionsId);
// 获取展示字段
List<StrategyConditionsCloumn> conditionsCloumns = (List<StrategyConditionsCloumn>) findShowCloums(conditionsId).getData();
conditionsCloumns.stream().forEach(item -> {
JSONObject jsonObject = new JSONObject();
if (Integer.valueOf(BigDecimal.ZERO.intValue()).equals(item.getIsCustom())) {
Optional<JSONObject> optional = targetCloumsInfors.stream().filter(v -> item.getTargetCloumn().equals(v.get(TowerConstant.COLUMN_NAME))).findFirst();
if (optional.isPresent()) {
// mysql 字段
jsonObject.putOpt(TowerConstant.TARGET_COLUMN,optional.get().get(TowerConstant.COLUMN_NAME));
// mysql字段类型
jsonObject.putOpt(TowerConstant.TARGET_COLUMN_TYPE,optional.get().get(TowerConstant.CLOUMN_TYPE));
// 前端展示的字段(别名)
jsonObject.putOpt(TowerConstant.SHOW_CLOUMN,item.getResourceCloumn());
// 前端展示的字段类型
jsonObject.putOpt(TowerConstant.CLOUMN_TYPE,item.getType());
}
} else {
jsonObject.putOpt(TowerConstant.TARGET_COLUMN,item.getResourceCloumn());
jsonObject.putOpt(TowerConstant.TARGET_COLUMN_TYPE,item.getType());
jsonObject.putOpt(TowerConstant.SHOW_CLOUMN,item.getResourceCloumn());
jsonObject.putOpt(TowerConstant.CLOUMN_TYPE,item.getType());
}
cloumnInfors.add(jsonObject);
});
return cloumnInfors;
}
版权声明:本文为qq_42945407原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。