JDBC 替换库名

public class SourceManager{
	static Pattern JDBC_PATTERN = Pattern.compile("jdbc:\\w+:\\/\\/\\d+\\.\\d+\\.\\d+\\.\\d+:\\d+\\/\\w+\\?*.*");
    static Pattern ORACLE_JDBC_PATTERN = Pattern.compile("jdbc:oracle:thin:@\\d+\\.\\d+\\.\\d+\\.\\d+:\\d+:\\w+.*");
    static Pattern JDBC_NO_DATABASE_PATTERN = Pattern.compile("jdbc:\\w+:\\/\\/\\d+\\.\\d+\\.\\d+\\.\\d+:\\d+");
    static Pattern ORACLE_JDBC_NO_DATABASE_PATTERN = Pattern.compile("jdbc:oracle:thin:@\\d+\\.\\d+\\.\\d+\\.\\d+:\\d+");



private void processJdbcUrl() {
        String databaseName = "aaa";
         String jdbcUrl= "jdbc:mysql:/127.0.0.1:3306/testdb";
        if (StringUtils.isNotBlank(databaseName)) {
            Matcher matcher = JDBC_PATTERN.matcher(jdbcUrl);
            if (!matcher.find()) {
                Matcher m = JDBC_NO_DATABASE_PATTERN.matcher(jdbcUrl);
                if (m.find()) {
                    String jdbc = m.group(0);
                    String jdbcUrl = m.replaceAll(jdbc + "/" + databaseName);
                    source.setJdbcUrl(jdbcUrl);
                }
            }
        }
    }
    
/**
     * 处理Oracle JDBC有无库名情况
     *
     * @param source
     */
    private void processJdbcUrl(SourceOracleDO source) {
        String databaseName = source.getDatabaseName();
        if (StringUtils.isNotBlank(databaseName)) {
            Matcher matcher = ORACLE_JDBC_PATTERN.matcher(source.getJdbcUrl());
            if (!matcher.find()) {
                Matcher m = ORACLE_JDBC_NO_DATABASE_PATTERN.matcher(source.getJdbcUrl());
                if (m.find()) {
                    String jdbc = m.group(0);
                    String jdbcUrl = m.replaceAll(jdbc + ":" + databaseName);
                    source.setJdbcUrl(jdbcUrl);
                }
            }
        }
    }

}


posted @ 2020-07-02 11:23  ytsee  阅读(63)  评论(0)    收藏  举报