kimi
2020-03-19 807e2c7a2ca8283ba6d6f764c83320ad5e023349
src/main/java/com/highdatas/mdm/util/DbUtils.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotations.TableName;
import com.highdatas.mdm.entity.Maintain;
import com.highdatas.mdm.entity.MaintainField;
import com.highdatas.mdm.entity.TableSchemaResult;
import com.highdatas.mdm.pojo.Segment;
import lombok.extern.slf4j.Slf4j;
@@ -10,9 +11,11 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.security.MessageDigest;
import java.text.MessageFormat;
import java.util.Random;
import java.util.UUID;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * @author kimi
@@ -22,6 +25,7 @@
@Slf4j
public class DbUtils {
    private static final char HEX_DIGITS[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
    public static String versionAddSub (String baseVersion) {
        if (StringUtils.isEmpty(baseVersion)) {
@@ -42,6 +46,12 @@
            return null;
        }
       return  baseVersion.getOrderNo().compareTo(compareVersion.getOrderNo());
    }
    public static Integer compareVersion(MaintainField baseVersion, MaintainField compareVersion) {
        if ((baseVersion == null) || (compareVersion == null)) {
            return null;
        }
        return  baseVersion.getOrderNo().compareTo(compareVersion.getOrderNo());
    }
    public static String versionAddBig(String baseVersion) {
@@ -97,6 +107,7 @@
        Segment segment = new Segment(name, value);
        return segment.toString();
    }
    public static String getTableNameFromEntity(Object object) {
        Field[] fields = object.getClass().getDeclaredFields();
        for (Field field : fields) {
@@ -191,6 +202,15 @@
        }
        return builder.toString();
    }
    public static String assemblParam(String objects){
        if (StringUtils.isEmpty(objects)) {
            return null;
        }else  {
            return  "@{" + objects + "}";
        }
    }
    public static String getRandomString(int length) {
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
@@ -234,4 +254,65 @@
        }
        return sbf.toString();
    }
    public static Set<String> matcher(String testStr) {
        return matcher(Constant.Default_Patter, testStr);
    }
    public static String replaceEscape(String testStr) {
        String new_str = Pattern.compile("\t|\r|\n| ").matcher(testStr).replaceAll(Constant.EMPTY);
        return new_str;
    }
    public static Set<String> matcher(String patter, String testStr) {
//      String test = "@{databaseIp}:{databasePort}{instanceName};database";
//      String initCompile = "(?<=@\\{)(.+?)(?=\\})";
        Set<String> ls=new HashSet<>();
        Pattern pattern = Pattern.compile(patter);
        Matcher matcher = pattern.matcher(testStr);
        while(matcher.find()){
            ls.add(matcher.group());
        }
        return ls;
    }
    private static String toHexString(byte[] b) {
        StringBuilder sb = new StringBuilder(b.length * 2);
        for (int i = 0; i < b.length; i++) {
            sb.append(HEX_DIGITS[(b[i] & 0xf0) >>> 4]);
            sb.append(HEX_DIGITS[b[i] & 0x0f]);
        }
        return sb.toString();
    }
    public static String Bit32(String SourceString) throws Exception {
        MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
        digest.update(SourceString.getBytes());
        byte messageDigest[] = digest.digest();
        return toHexString(messageDigest);
    }
    public static String Bit16(String SourceString) throws Exception {
        return Bit32(SourceString).substring(8, 24);
    }
    public static List<Segment> map2Segment(Map<String, String> masterModifiedMap) {
        ArrayList<Segment> result = new ArrayList<>();
        Set<String> keys = masterModifiedMap.keySet();
        for (String key : keys) {
            String value = masterModifiedMap.get(key);
            Segment segment = new Segment(key, value);
            result.add(segment);
        }
        return result;
    }
}