https://mvnrepository.com/artifact/com.healthmarketscience.sqlbuilder/sqlbuilder

кто-нибудь указать мне на некоторые ресурсы по сравнению производительности среди различных библиотек Query DSL, доступных для использования с Java, например:Querydsl, jOOQ, JEQUEL, activejdbc, iciql и так далее...

Фон: Я использую шаблон Spring JDBC, но для этого все еще требуется, чтобы запросы были записаны в формате простой строки. Хотя у меня нет проблем при написании прямых запросов, но меня беспокоит прямая зависимость от имен таблиц БД. Я не хочу использовать какие-либо рамки ORM, такие как Hibernate или JPA / EclipseLink. Мне нужна максимально высокая исходная производительность (IMO, они хороши для более ориентированных на CRUD приложений). Я могу позволить себе небольшие накладные расходы для этих DSL, только если это немного (я полагаю, это будут в основном конкатенации StringBuilder / String!)

Я рассмотрел использование именованных запросов, выведенных в некоторых XML. Но просто пытаюсь оценить ценность, которую предоставляют различные библиотеки Query DSL.

Изменить: больше по моему требованию: Я хочу знать сравнение производительности между ними при построении умеренно сложного запроса с использованием их методов API. Все, что мне нужно, это сгенерировать строку запроса, используя любую из этих библиотек DSL запроса, и передать ее в шаблон Spring JDBC. Итак, я хочу знать, если добавление этого промежуточного шага влечет за собой значительное снижение производительности, я хочу использовать именованные запросы или создать свою собственную библиотеку, которая просто использует StingBuilder или подобный подход

Обновить мой опыт работы с jOOQ, iciql, QueryDSL:

Несмотря на то, что я пропустил упоминание об этом в своем первоначальном посте, я также заинтересован в простоте использования и накладных расходах, которые мне нужны в моих классах сущностей (например, если требуются какие-либо дополнительные аннотации или реализации).

jOOQ:

требует изменения свойств объекта в соответствии с библиотекойможет вернуть строку запроса SQL

Iciql:

сущность может быть отображена без или с небольшими изменениями (может быть отображена с использованием всего 3 способов)но при этом он ограничивает только выборочные запросы (для обновления / удаления / ... требуется повторное изменение сущности)

QueryDSL:

несколько способов связать сущности с таблицей (кроме библиотечных, поддерживаются аннотации JPA). но нам нужно изменить сущности по крайней меренет простого / прямого способа получить строку запроса

(у меня мало наблюдений по всем этим наблюдениям; если какие-то из них неверны, пожалуйста, исправьте)

Учитывая все вышесказанное, я придерживаюсь написания именованных запросов :( Но, как кажется, ответ Lukas Eder объясняет мою первоначальную озабоченность (производительность) после публикации, я принял его.

Ответы на вопрос(4)

Ваш ответ на вопрос