реализация hikaricp с microsoft sql server [закрыто]
Я пытаюсь выяснить лучший подход для использования hikaricp (JDBC connection pool) с microsoft sql server. Из того, что я видел, рекомендуется параметр DataSource (как и в случае большинства пулов соединений, которые я видел). Однако я не смог правильно сформировать соединение с базой данных sql server на основе примеров, которые я видел, - интересно, есть ли у кого-нибудь рабочий пример, к которому я могу подключить свою информацию о БД.
1 ответов
убедитесь, что вы сделали следующие шаги:
-
при использовании maven убедитесь, что у вас есть следующая зависимость в файле pom (при использовании JDK7 / 8):
<dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>2.0.1</version> <scope>compile</scope> </dependency>
если вы используете другой инструмент сборки, измените URL ресурса соответствующим образом (или просто загрузите файл jar из репозитория maven, если для вас нет другого варианта).
Я считаю, что вам нужен sqljdbc4.файл jar в вашем файле pom также (я могу ошибаться в этом требование, чтобы я мог обновить сообщение после подтверждения)
-
импортируйте следующее в свой класс вместе с другими ссылками:
import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource;
-
добавьте следующие конечные свойства (или просто загрузите их из файла конфигурации):
private final String url = "jdbc:sqlserver://"; private final String serverName= "xxx.xxx.xxx.xxx"; private final int portNumber = 1433; private final String databaseName= "ACTUALDBNAME"; private final String userName = "ACTUALUSERNAME"; private final String password = "ACTUALPASSWORD"; private final String selectMethod = "cursor";
вы можете получить URL-адрес подключения такой:
public String getConnectionUrl() { return url+this.serverName+":"+this.portNumber+";databaseName="+this.databaseName+";user="+this.userName+";password="+this.password+";selectMethod="+this.selectMethod+";";
}
Затем следующее должно дать вам Источник данных, который вам нужен, чтобы получить соединение:
public DataSource getDataSource() {
final HikariDataSource ds = new HikariDataSource();
ds.setMaximumPoolSize(10);
ds.setDataSourceClassName("com.microsoft.sqlserver.jdbc.SQLServerDataSource");
// ds.addDataSourceProperty("serverName", this.serverName);
//ds.addDataSourceProperty("databaseName", this.databaseName);
ds.addDataSourceProperty("url", this.getConnectionUrl());
ds.addDataSourceProperty("user", this.userName);
ds.addDataSourceProperty("password", this.password);
ds.setInitializationFailFast(true);
ds.setPoolName("wmHikariCp");
return ds;
}
или
public DataSource getDataSource() {
HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(10);
config.setDataSourceClassName("com.microsoft.sqlserver.jdbc.SQLServerDataSource");
config.addDataSourceProperty("serverName", this.serverName);
config.addDataSourceProperty("port", this.portNumber);
config.addDataSourceProperty("databaseName", this.databaseName);
config.addDataSourceProperty("user", this.userName);
config.addDataSourceProperty("password", this.password);
return new HikariDataSource(config); //pass in HikariConfig to HikariDataSource
}
предпочтительным маршрутом является передача hikariconfig конструктору hikaridatasource. Вы также можете загрузить config из файла свойств.
затем получите соединение из источника данных:
Connection con = null;
con = ds.getConnection(); //where ds is the dataSource retrieved from step 5