HikariCP准备了语句缓存

时间:2017-08-07 12:06:48

标签: oracle caching hikaricp connection-pool

我正在调查HikariCP在我的一个项目中使用它。 github中项目页面的statement cache section表示它不支持连接池级别的预准备语句缓存。

initialization section包含以下代码段

HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/simpsons");
config.setUsername("bart");
config.setPassword("51mp50n");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");

HikariDataSource ds = new HikariDataSource(config);

并设置预准备语句缓存配置。它是为连接池还是下面的驱动程序配置的? 另外addDataSourceProperty方法支持哪些属性?

1 个答案:

答案 0 :(得分:1)

在您的情况下,MySql配置并使用数据源。

基本上,您可以将相关属性发送到您的实现。

例如对于oracle,您可以发送

dataSource.addDataSourceProperty("oracle.jdbc.defaultNChar", "true");

此属性将用于oracle实现

HikariCP将其保存在属性中并将其复制到驱动程序属性并在connect:

上使用它
for (Entry<Object, Object> entry : properties.entrySet()) {
         driverProperties.setProperty(entry.getKey().toString(), entry.getValue().toString());
      }
....
driver.connect(jdbcUrl, driverProperties);