JDBC 替换库名

    技术2022-07-13  67

    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); } } } } }
    Processed: 0.009, SQL: 9