Commit 4ffd7dd5 by y1sa

修复已知问题

parent 7e25ce96
...@@ -56,4 +56,16 @@ public class JdbcConnInfo { ...@@ -56,4 +56,16 @@ public class JdbcConnInfo {
public void setPassword(String password) { public void setPassword(String password) {
this.password = password; this.password = password;
} }
@Override
public String toString() {
return "JdbcConnInfo{" +
"host='" + host + '\'' +
", port=" + port +
", dbname='" + dbname + '\'' +
", url='" + url + '\'' +
", user='" + user + '\'' +
", password='******'" +
'}';
}
} }
package com.tbyf.cdcengine2.mysql; package com.tbyf.cdcengine2.mysql;
import com.tbyf.cdcengine2.core.JdbcConnInfo;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MySqlUtils { public class MySqlUtils {
public static void loadDriver() { public static void loadDriver() {
...@@ -13,4 +20,26 @@ public class MySqlUtils { ...@@ -13,4 +20,26 @@ public class MySqlUtils {
public static String buildUrl(String host, int port, String database) { public static String buildUrl(String host, int port, String database) {
return "jdbc:mysql://" + host + ":" + port + "/" + database + "?serverTimezone=Asia/Shanghai"; return "jdbc:mysql://" + host + ":" + port + "/" + database + "?serverTimezone=Asia/Shanghai";
} }
private static final Pattern urlPattern = Pattern.compile("jdbc:mysql://([a-zA-Z0-9.]+):(\\d+)/([a-zA-Z]+)\\?*.*");
public static JdbcConnInfo parseConnInfoFromUrl(String url) {
Matcher matcher = urlPattern.matcher(url);
if (matcher.find()) {
String host = matcher.group(1);
int port = Integer.parseInt(matcher.group(2));
String dbname = matcher.group(3);
JdbcConnInfo connInfo = new JdbcConnInfo();
connInfo.setUrl(url);
connInfo.setHost(host);
connInfo.setPort(port);
connInfo.setDbname(dbname);
return connInfo;
} else {
throw new IllegalArgumentException(url);
}
}
} }
package com.tbyf.cdcengine2.sqlserver; package com.tbyf.cdcengine2.sqlserver;
import com.tbyf.cdcengine2.core.JdbcConnInfo;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SqlServerUtils { public class SqlServerUtils {
...@@ -28,4 +32,24 @@ public class SqlServerUtils { ...@@ -28,4 +32,24 @@ public class SqlServerUtils {
throw new IllegalStateException("获取数据库连接失败", e); throw new IllegalStateException("获取数据库连接失败", e);
} }
} }
private static final Pattern urlPattern = Pattern.compile("jdbc:sqlserver://([a-zA-Z0-9.]+):(\\d+);databaseName=([a-zA-Z]*)");
public static JdbcConnInfo parseConnInfoFromUrl(String url) {
Matcher matcher = urlPattern.matcher(url);
if (matcher.find()) {
String host = matcher.group(1);
int port = Integer.parseInt(matcher.group(2));
String dbname = matcher.group(3);
JdbcConnInfo connInfo = new JdbcConnInfo();
connInfo.setUrl(url);
connInfo.setHost(host);
connInfo.setPort(port);
connInfo.setDbname(dbname);
return connInfo;
} else {
throw new IllegalArgumentException(url);
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment