在Play

时间:2015-12-04 14:39:57

标签: playframework datasource threadpool playframework-2.3

我在conf/application.conf文件中定义了多个数据库,如下所示:

db.something.driver=com.mysql.jdbc.Driver
db.something.url="jdbc:mysql://host:3306/something"
db.something.user=user
db.something.pass=pass

启动时,Play为每个架构设置一个线程池/数据源。我该如何以编程方式执行此操作?我必须能够在应用程序运行时动态添加数据源。

1 个答案:

答案 0 :(得分:2)

通过Play源代码调试后,我在play.db.Databases

中找到了此方法
    public static Database createFrom(String name, String driver, String url, Map<String, ? extends Object> config) {
        ImmutableMap.Builder<String, Object> dbConfig = new ImmutableMap.Builder<String, Object>();
        dbConfig.put("driver", driver);
        dbConfig.put("url", url);
        dbConfig.putAll(config);
        return new DefaultDatabase(name, dbConfig.build());
    }

通过调用:Databases.createFrom("mydb", "driver", "url", conf)使用它,最后一个参数包含用户名和密码以及您需要的任何其他内容。

application.conf中的数据库定义已过时。但是,将这些Database对象存储在Map中以便以后重用是有意义的。

相关问题