реализация 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