我正在尝试在Spring @Configuration类[Database is 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; }
brettw.. 24
你可以在这里查看我们在wiki中的示例:
https://github.com/brettwooldridge/HikariCP/wiki/Spring-Hibernate-with-Annotations
如本文所述:
http://www.3riverdev.com/blog/tutorial-spring-hibernate-hikaricp/
编辑:上面提供的代码不正确.您正在尝试使用MySQL的 DataSource
属性的甲骨文 DataSource
.而现在你正在将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; }
或 数据源:
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; }
此外,除非您每秒运行20K事务,否则100连接对Oracle来说很重要,10-20更合理.