4
我正在研究一些利用Dropwizard的代碼,這將需要我至少需要連接兩個不同的數據庫(我打算使用Hibernate)。我無法找到任何示例/文檔,這些示例/文檔將允許我在.yml配置文件的數據庫塊中配置兩個不同的數據庫連接。這在Dropwizard中可能嗎?如果不是,那麼過去人們使用的解決方法是什麼?先進的謝謝您的幫助!可以在Dropwizard中配置多個數據庫連接嗎?
我正在研究一些利用Dropwizard的代碼,這將需要我至少需要連接兩個不同的數據庫(我打算使用Hibernate)。我無法找到任何示例/文檔,這些示例/文檔將允許我在.yml配置文件的數據庫塊中配置兩個不同的數據庫連接。這在Dropwizard中可能嗎?如果不是,那麼過去人們使用的解決方法是什麼?先進的謝謝您的幫助!可以在Dropwizard中配置多個數據庫連接嗎?
您可以在dropwizard中配置多個數據庫。在config.yml中你可以有多個這樣的數據庫配置。
數據庫1:
driverClass: org.postgresql.Driver
user: user
password: pwd
url: jdbc:postgresql://localhost:5432/db1
validationQuery: select 1
minSize: 2
maxSize: 8
DATABASE2:
driverClass: org.postgresql.Driver
user: user
password: pwd
url: jdbc:postgresql://localhost:5432/db2
validationQuery: select 1
minSize: 2
maxSize: 8
而且在配置類同時獲得配置的詳細信息。
public class DBConfig extends Configuration {
private DatabaseConfiguration database1;
private DatabaseConfiguration database2;
public DatabaseConfiguration getDatabase1() {
return database1;
}
public DatabaseConfiguration getDatabase2() {
return database2;
}
}
並且在你的服務中配置哪個Dao來使用哪個數據庫。
@Override
public void run(MyConfiguration configuration,
Environment environment) throws ClassNotFoundException {
...
final DBIFactory factory = new DBIFactory();
// Note that the name parameter when creating the DBIs must be different
// Otherwise you get an IllegalArgumentException
final DBI jdbi1 = factory.build(
environment, configuration.getUserDatabase(), "db1");
final DBI jdbi2 = factory.build(
environment, configuration.getItemDatabase(), "db2");
final MyFirstDAO firstDAO = jdbi1.onDemand(MyFirstDAO.class);
final MySecondDAO secondDAO = jdbi2.onDemand(MySecondDAO.class);
...
}
寫給Dropwizard支持,並詢問他們或詢問他們的論壇。 – Mark
謝謝,我會在那裏發帖。問候 – user3211039