размер выборки для NamedParameterJdbctemplate?

Я работаю над проблемой, которая требует от меня написания запроса для извлечения нескольких тысяч записей из базы данных. Запрос, который я буду использовать, будет включать 2 предложения IN в условие WHERE.

В соответствии с моими знаниями, которые могут быть ограничены, пожалуйста, исправьте меня, для этого варианта использования я не могу использовать jdbctemplate. Мне пришлось бы перейти к NamedParameterJdbcTemplate, поскольку NamedParameterJdbcTemplate дает нам возможность использовать предложение IN.

Теперь мои вопросы, на которые я ищу ответы, заключаются в следующем.

Q.> NamedParameterJdbcTemplate не имеет метода setFetchSize. Есть ли способ установить размер выборки для NamedParameterJdbcTemplate?

В> Кто-нибудь знает размер выборки по умолчанию для NamedParameterJdbcTemplate? для JdbcTemplate установлено значение 10. Я знаю. Как насчет NamedParameterJdbcTemplate?

В> даже если я использую NamedParameterJdbcTemplate, моя проблема не будет решена, поскольку, если мы предположим, что размер выборки NamedParameterJdbcTemplate также будет равен 10, выборка нескольких тысяч записей все равно займет много времени моего приложения.

Может ли кто-нибудь предложить решение или направить меня в правильном направлении?


person user641887    schedule 18.11.2017    source источник


Ответы (1)


NamedParameterJdbcTemplate делегирует простому JdbcTemplate всю работу JDBC. Таким образом, вы можете создать свою передачу NamedParameterJdbcTemplate в настроенном JdbcTemplate в конструкторе. Если вы настроите fetchSize на JdbcTemplate, который вы передаете, то это то, что будет использовать и NamedParameterJdbcTemplate. См. - https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.html#NamedParameterJdbcTemplate-org.springframework.jdbc.core.JdbcOperations-

person Thomas Risberg    schedule 20.11.2017
comment
так упрощено, что это будет выглядеть как NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(dataSource); template.getJdbcTemplate().setFetchSize(50); ? - person ghoulfolk; 27.04.2021