package com.vci.ubcs.ddl.processor.ddl; import com.vci.starter.web.util.VciBaseUtil; import com.vci.ubcs.ddl.mapper.DdlMapper; import com.vci.ubcs.ddl.mapper.DdlMySqlMapper; 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 */ @Repository public class DdlMySqlMapperProcessor extends DdlMapperProcessor{ @Resource private DdlMySqlMapper myMapper; private static DdlMapper mapper; @PostConstruct public void init(){ mapper = myMapper; } public DdlMySqlMapperProcessor() { super(mapper); } @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; } }