田源
2023-05-09 d2570148ec3884de3af721bd99c4b7acbbdee075
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package com.vci.ubcs.ddl.processor.dll;
import com.vci.ubcs.ddl.bo.DdlFieldMappingAttrBO;
import com.vci.ubcs.ddl.mapper.DllMapper;
import com.vci.ubcs.ddl.mapper.DllMySqlMapper;
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import org.apache.commons.collections4.BidiMap;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/24
 */
@Component
public class DllMySqlMapperProcessor extends DllMapperProcessor {
   private static final DllMapper MAPPER = VciSpringUtil.getBean(DllMySqlMapper.class);
   private static final BidiMap<VciFieldTypeEnum, DdlFieldMappingAttrBO> FIELD_MAP = getMappingMapCopy();
   static {
      // éœ€è¦é‡æ–°æ˜ å°„的字段类型在这里写
      FIELD_MAP.put(VciFieldTypeEnum.VTDouble,new DdlFieldMappingAttrBO("NUMERIC",26,8,true,null));
      FIELD_MAP.put(VciFieldTypeEnum.VTInteger,new DdlFieldMappingAttrBO("INT",22,null,true,null));
      FIELD_MAP.put(VciFieldTypeEnum.VTLong,new DdlFieldMappingAttrBO("BIGINT",22,null,true,null));
      FIELD_MAP.put(VciFieldTypeEnum.VTBoolean,new DdlFieldMappingAttrBO("VARCHAR",5,null,true,null));
      FIELD_MAP.put(VciFieldTypeEnum.VTDate,new DdlFieldMappingAttrBO("DATETIME",null,null,true,null));
      FIELD_MAP.put(VciFieldTypeEnum.VTDateTime,new DdlFieldMappingAttrBO("DATETIME",null,null,true,null));
      FIELD_MAP.put(VciFieldTypeEnum.VTTime,new DdlFieldMappingAttrBO("DATETIME",null,null,true,null));
      FIELD_MAP.put(VciFieldTypeEnum.VTFilePath,new DdlFieldMappingAttrBO("VARCHAR",100,null,true,null));
      FIELD_MAP.put(VciFieldTypeEnum.VTClob,new DdlFieldMappingAttrBO("varchar(max)",100,null,true,null));
      FIELD_MAP.put(VciFieldTypeEnum.VTString,new DdlFieldMappingAttrBO("VARCHAR",100,null,true,null));
   }
   public DllMySqlMapperProcessor() {
      super(MAPPER);
      System.out.println("-----------------");
      if (MAPPER != null){
         System.out.println("[success]::加载MySql数据库DLL操作服务成功");
      }else {
         System.out.println("[fail]::加载MySql数据库DLL操作服务失败");
      }
   }
   @Override
   public boolean support(String url) {
      return "oracle.jdbc.OracleDiver".equals(url);
   }
   @Override
   protected DdlFieldMappingAttrBO getMappingBO(VciFieldTypeEnum fieldTypeEnum) {
      return getMappingBOInMap(fieldTypeEnum,FIELD_MAP);
   }
   /**
    * æŒ‰æ•°æ®åº“字段类型列举所有的VCI字段类型
    *
    * @param columnStr æ•°æ®åº“字段类型
    * @return VCI字段类型
    */
   @Override
   public List<VciFieldTypeEnum> listFieldByColumnStr(String columnStr) {
      return listFieldInMapByColumnStr(columnStr,FIELD_MAP);
   }
   @Override
   public VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr, Integer length) {
      return getFieldTypeBeColumnStrInMap(columnStr,length,FIELD_MAP);
   }
}