田源
2023-05-09 d2570148ec3884de3af721bd99c4b7acbbdee075
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
package com.vci.ubcs.ddl.processor.ddl;
import com.vci.ubcs.ddl.mapper.DdlMapper;
import com.vci.ubcs.ddl.mapper.DdlMySqlMapper;
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.List;
/**
 * Description:MySql的数据库操作
 *
 * @author LiHang
 * @date 2023/4/24
 */
@Component
public class DdlMySqlMapperProcessor extends DdlMapperProcessor{
   private static DdlMapper mapper = VciSpringUtil.getBean(DdlMySqlMapper.class);
   public DdlMySqlMapperProcessor() {
      super(mapper);
      System.out.println("-----------------");
      if (mapper != null){
         System.out.println("[success]::加载MySql数据库DDL操作服务成功");
      }else {
         System.out.println("[fail]::加载MySql数据库DDL操作服务失败");
      }
   }
   @Override
   public boolean support(String url) {
      return "com.mysql.cj.jdbc.Driver".equals(url);
   }
   @Override
   public void modifyTableBySqlBase(String tableName, String attributeSql) {
      StringBuilder sb = new StringBuilder();
      List<String> modifyColumnSqlList = VciBaseUtil.str2List(attributeSql);
      if (!CollectionUtils.isEmpty(modifyColumnSqlList)) {
         modifyColumnSqlList.stream().forEach(s -> {
            sb.append(SPACE).append("modify").append(SPACE).append(s).append(SPACE).append(",");
         });
      }
      modifyTableBySql(tableName,sb.substring(0, sb.lastIndexOf(",")));
   }
   /**
    * å‘数据库表中添加单个字段
    *
    * @param tableName    è¡¨æ ¼çš„名称
    * @param attributeSql è¦æ·»åŠ çš„æ–°çš„sql
    * @return å½±å“çš„行数
    */
   @Override
   public int addColumn2TableBySql(String tableName, String attributeSql) {
      StringBuilder sb = new StringBuilder();
      List<String> modifyColumnSqlList = VciBaseUtil.str2List(attributeSql);
      if (!CollectionUtils.isEmpty(modifyColumnSqlList)) {
         modifyColumnSqlList.stream().forEach(s -> {
            sb.append(SPACE).append("add").append(SPACE).append(s).append(SPACE).append(",");
         });
         return mapper.addColumn2TableBySql(tableName, sb.substring(0, sb.lastIndexOf(",")));
      }
      return 0;
   }
}