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.context.annotation.DependsOn; 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 @DependsOn("vciSpringUtil") 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 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 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; } }