обобщить и записать SQL-запрос в Java - PullRequest
0 голосов
/ 24 августа 2018

Я использую JDBI для запроса MySQL в моем Java-приложении.Я хочу регистрировать метрики вокруг запросов, которые выполняются в приложении, такие как время, потраченное запросом, количество раз, когда запрос был выполнен, время, потраченное на получение дескриптора и т. Д. Хотя большинство моих запросов выполняются черезподготовленный оператор, у меня есть несколько запросов, где я передаю параметры в запросе как часть строки SQL.например,

select * from products where category in ('a', 'b', 'c') and id = :id;

Регистратор JDBI выводит его как

select * from products where category in ('a', 'b', 'c') and id = ?;

, и для анализа становится очень сложно сгруппировать несколько запросов.Есть ли в Java библиотека, которая может помочь мне обобщить такие запросы, например,

select * from products where category in (?) and id = ?;

или, может быть,

select * from products where category in (?, ?, ?) and id = ?;

PS Я знаю, что это действительно плохой дизайн - объединить строку в SQLзапросы.

1 Ответ

0 голосов
/ 25 августа 2018

В MySQL есть два подхода, каждый из которых, кажется, соответствует вашим желаниям:

Я думаю, что оба сделают in (?, ?, ?) and id = ?, и они используют это как «дайджест» запроса для суммирования похожих запросов по истекшему времени и т. Д.

...