Spring @Configurationクラス[データベースはOracle]でHikariCPデータソースを構成しようとしています。しかし、それは機能していません。
インターネットで検索したところ、HikariCPデータソースをコンストラクタで構成する必要があることがわかりました。私はこれを[彼らのgithubウェブページで言及されている方法で]試しましたが、それでも機能しません。この問題の解決を手伝ってください。
private HikariDataSource dataSource() {
final HikariDataSource ds = new HikariDataSource();
ds.setMaximumPoolSize(100);
ds.setDataSourceClassName("Oracle.jdbc.driver.OracleDriver");
ds.addDataSourceProperty("url", "jdbc:Oracle:thin:@localhost:1521:XE");
ds.addDataSourceProperty("user", "username");
ds.addDataSourceProperty("password", "password");
ds.addDataSourceProperty("cachePrepStmts", true);
ds.addDataSourceProperty("prepStmtCacheSize", 250);
ds.addDataSourceProperty("prepStmtCacheSqlLimit", 2048);
ds.addDataSourceProperty("useServerPrepStmts", true);
return ds;
}
あなたはここのwikiで私たちの例をチェックすることができます:
https://github.com/brettwooldridge/HikariCP/wiki/Spring-Hibernate-with-Annotations
この記事で取り上げているように:
http://www.3riverdev.com/blog/tutorial-spring-hibernate-hikaricp/
編集:上記のコードは正しくありません。 MySQLDataSource
プロパティをOracleDataSource
に使用しようとしています。そして今、Driver
ベースの構成とDataSource
ベースの構成を混同しています。それを簡素化する:
ドライバー:
private HikariDataSource dataSource() {
final HikariDataSource ds = new HikariDataSource();
ds.setMaximumPoolSize(100);
ds.setDriverClassName("Oracle.jdbc.driver.OracleDriver");
ds.setJdbcUrl("jdbc:Oracle:thin:@localhost:1521:XE"); ;
ds.setUsername("username");
ds.setPassword("password");
return ds;
}
[〜#〜]または[〜#〜]DataSource:
private HikariDataSource dataSource() {
final HikariDataSource ds = new HikariDataSource();
ds.setMaximumPoolSize(100);
ds.setDataSourceClassName("Oracle.jdbc.pool.OracleDataSource");
ds.addDataSourceProperty("serverName", "yourServer");
ds.addDataSourceProperty("port", "1521");
ds.addDataSourceProperty("databaseName", "XE");
ds.addDataSourceProperty("user", "username");
ds.addDataSourceProperty("password", "password");
return ds;
}
また、100接続は、毎秒2万トランザクションを実行している場合を除いて、Oracleにとって大きな意味があります。10-20の方が合理的です。
次のようなものがあなたのニーズに合うはずです:
@Bean
public DataSource dataSource() {
HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(100);
config.setDataSourceClassName("Oracle.jdbc.pool.OracleDataSource");
config.addDataSourceProperty("serverName", "localhost");
config.addDataSourceProperty("port", "1521");
config.addDataSourceProperty("databaseName", "XE");
config.addDataSourceProperty("user", "yourUser");
config.addDataSourceProperty("password", "yourPassword");
return new HikariDataSource(config);
}