每个线程根据表创建不同的数据库连接

时间:2013-02-24 00:00:21

标签: java database multithreading connection

我正在开发一个项目,我需要根据表格建立不同的数据库连接。所有表格和连接详细信息都在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

我的问题是 - 有没有更好的设计来解决类似的问题?像每个线程应该创建不同的数据库连接并将其存储在列表中,以便我可以正确使用它们。

0 个答案:

没有答案