Кэш подготовленных операторов HikariCP

Я искал HikariCP для использования в одном из моих проектов. В разделе кеша операторов на странице проекта в github указано, что он не поддерживает подготовленные кэш операторов на уровне пула соединений.

Но раздел инициализации содержит приведенный ниже фрагмент кода.

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?


person sivaguru perumal    schedule 07.08.2017    source источник
comment
Кэширование обеспечивается драйвером.   -  person brettw    schedule 08.08.2017


Ответы (1)


Источник данных настроен и используется MySql в вашем случае.

По сути, вы можете отправить соответствующие свойства в свою реализацию.

Например, для оракула вы можете отправить

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

И это свойство будет использоваться в реализации оракула

HikariCP сохраните его в свойствах, скопируйте в свойства драйвера и используйте при подключении:

for (Entry<Object, Object> entry : properties.entrySet()) {
         driverProperties.setProperty(entry.getKey().toString(), entry.getValue().toString());
      }
....
driver.connect(jdbcUrl, driverProperties);
person user7294900    schedule 07.08.2017
comment
Спасибо за Ваш ответ. Теперь я понимаю, что кэширование для драйвера и мы можем установить свойства драйвера с помощью addDataSourceProperty. Но я не смог найти свойство источника данных, которое нужно установить для включения кеша в драйвере оракула (как вы сказали, фрагмент кода примера предназначен для MySQL). - person sivaguru perumal; 09.08.2017
comment
См. stackoverflow.com/questions/ 12167108/ - person user7294900; 09.08.2017