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);
}
}
}
}
}
JDBC 替换库名
最新推荐文章于 2022-08-06 14:19:28 发布