package com.vci.ubcs.ddl.processor.ddl; import com.vci.ubcs.ddl.mapper.DdlMSMapper; import com.vci.ubcs.ddl.mapper.DdlMapper; import com.vci.ubcs.starter.web.util.VciBaseUtil; import org.springframework.util.CollectionUtils; import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** * Description: SqlServer的数据库操作 * * @author LiHang * @date 2023/4/24 */ public class DdlMsMapperProcessor extends DdlMapperProcessor{ @Resource private DdlMSMapper msMapper; private static DdlMapper mapper; @PostConstruct public void init(){ mapper = msMapper; } public DdlMsMapperProcessor() { super(mapper); } @Override public boolean support(String url) { return "com.microsoft.sqlserver.jdbc.SQLServerDriver".equals(url); } @Override public void modifyTableBySqlBase(String tableName, String attributeSql) { List modifyColumnSqlList = VciBaseUtil.str2List(attributeSql); if (!CollectionUtils.isEmpty(modifyColumnSqlList)) { modifyColumnSqlList.stream().forEach(s -> { mapper.modifyTableBySql(tableName, s); }); } } /** * 向数据库表中添加单个字段 * * @param tableName 表格的名称 * @param attributeSql 要添加的新的sql * @return 影响的行数 */ @Override public int addColumn2TableBySql(String tableName, String attributeSql) { List modifyColumnSqlList = VciBaseUtil.str2List(attributeSql); List result = new ArrayList<>(); if (!CollectionUtils.isEmpty(modifyColumnSqlList)) { modifyColumnSqlList.stream().forEach(s -> { result.add(mapper.addColumn2TableBySql(tableName, s)); }); return result.stream().mapToInt(Integer::intValue).sum(); } return 0; } }