public class DatasourceConnectivity {
private Logger logger = LoggerFactory.getLogger(DatasourceConnectivity.class);
private String jdbcurl = "jdbc:mysql://xx.xx.xxx.xxx:3367/metamonitor?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true";
private String username = "rxxt";
private String password = "password";
private String driverClassName = "com.mysql.cj.jdbc.Driver";
private final String sql = "select rela_name, target_ds_name, target_ds_type, target_ds_url, target_tab_name, target_entity_name, target_field_name, source_ds_name, source_ds_type, source_ds_url, source_tab_name, source_entity_name, source_field_name, parser_date from cgn_dacp_ex_entity_relation";
public List<CgnDacpExEntityRelationDO> getMonitorData() {
List<CgnDacpExEntityRelationDO> cgnDacpExEntityRelationDOS = new ArrayList<>();
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Properties properties = new Properties();
properties.put("user", username);
properties.put("password", password);
URL url = new URL("file:\\"+"E:\\home\\test\\2022-08-15\\mysql-connector-java-8.0.13.jar");
URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url});
Driver driver =(Driver) Class.forName(driverClassName, true, urlClassLoader).newInstance();
DriverShim driverShim = new DriverShim(driver);
DriverManager.registerDriver(driverShim);
con = DriverManager.getConnection(jdbcurl, properties);
DriverManager.deregisterDriver(driverShim);
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
logger.info("建模平台连接数据库成功");
while (rs.next()) {
String relaName = rs.getString("rela_name");
String targetDsName = rs.getString("target_ds_name");
String targetDsType = rs.getString("target_ds_type");
String targetDsUrl = rs.getString("target_ds_url");
String targetTabName = rs.getString("target_tab_name");
String targetEntityName = rs.getString("target_entity_name");
String targetFieldName = rs.getString("target_field_name");
String sourceDsName = rs.getString("source_ds_name");
String sourceDsType = rs.getString("source_ds_type");
String sourceDsUrl = rs.getString("source_ds_url");
String sourceTabName = rs.getString("source_tab_name");
String sourceEntityName = rs.getString("source_entity_name");
String sourceFieldName = rs.getString("source_field_name");
String parserDate = rs.getString("parser_date");
CgnDacpExEntityRelationDO cgnDacpExEntityRelationDO = new CgnDacpExEntityRelationDO(relaName, targetDsName, targetDsType, targetDsUrl, targetTabName, targetEntityName, targetFieldName, sourceDsName, sourceDsType, sourceDsUrl, sourceTabName, sourceEntityName, sourceFieldName, parserDate);
cgnDacpExEntityRelationDOS.add(cgnDacpExEntityRelationDO);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return cgnDacpExEntityRelationDOS;
}
}
public class DriverShim implements Driver {
private Driver driver;
public DriverShim(Driver driver) {
this.driver = driver;
}
@Override
public Connection connect(String url, Properties info) throws SQLException {
return driver.connect(url, info);
}
@Override
public boolean acceptsURL(String url) throws SQLException {
return driver.acceptsURL(url);
}
@Override
public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException {
return driver.getPropertyInfo(url, info);
}
@Override
public int getMajorVersion() {
return driver.getMajorVersion();
}
@Override
public int getMinorVersion() {
return driver.getMinorVersion();
}
@Override
public boolean jdbcCompliant() {
return driver.jdbcCompliant();
}
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
return driver.getParentLogger();
}
}