Как динамически отобразить параметры процедуры? - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь реализовать интерфейс между моим Java-приложением и моей базой данных.Что мне действительно нужно сделать, это вызвать процедуры из разных баз данных с помощью вызываемого оператора.Но база данных должна быть клиент-зависимой, и количество параметров меняется, если я скажу использовать mysql db или oracle db.

Пример:

заголовок mysql proc

CALLPROCEDURE (IN pageid INT, IN direction VARCHAR(20))...

заголовок ora proc

CALLPROCEDURE (IN pageid INT, IN direction VARCHAR(20), OUT resp INT)...

Я решил получить метаданные каждой процедуры через

DatabaseMetaData dbmd = conn.getMetaData();
ResultSet rs = dbmd.getProcedureColumns(DBName, Schema, ProcedureName, null);

У меня также есть HashMap для ColumnName и значения, где я хочу вызывать свои процедуры.

Мой вопрос: как мне эффективно сопоставить эти два?Есть ли библиотека или фреймворк, которые я могу использовать, или мне нужно проходить каждый случай?

Это будет означать:

(code for COLUMN_TYPE IN = 1 
-> code for DATA_TYPE VARCHAR = 12 
-> cs.setString(...))

и так далее

...