我正在开发一个项目,我需要根据表格建立不同的数据库连接。所有表格和连接详细信息都在config.properties file
中。所以假设我有两个表,其中包含config.properties
文件中的连接详细信息。然后每个线程在database connections
时都会生成两个run method
。
下面的方法将读取属性文件并为每个表格生成ReadTableConnectionInfo object
。
private static void readPropertyFile() throws IOException {
prop.load(Read.class.getClassLoader().getResourceAsStream("config.properties"));
tableNames = Arrays.asList(prop.getProperty("TABLES").split(" "));
for (String arg : tableNames) {
ReadTableConnectionInfo ci = new ReadTableConnectionInfo();
String url = prop.getProperty(arg + ".url");
String user = prop.getProperty(arg + ".user");
String password = prop.getProperty(arg + ".password");
String driver = prop.getProperty(arg + ".driver");
ci.setUrl(url);
ci.setUser(user);
ci.setPassword(password);
ci.setDriver(driver);
tableList.put(arg, ci);
}
}
下面是将保存特定表的所有表连接信息的类。
public class ReadTableConnectionInfo {
public String url;
public String user;
public String password;
public String driver;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
}
从下面的代码中,我试图通过在ReadTask class
中传递tableList map
来使用多个线程执行constructor
,并且在run method
每个线程中将创建两个{{} 1}}取决于different database connections
。
tableLists size
我的问题是 - 有没有更好的设计来解决类似的问题?像每个线程应该创建不同的数据库连接并将其存储在列表中,以便我可以正确使用它们。