如何动态映射过程参数?

时间:2018-09-26 06:11:25

标签: database mapping metadata procedure

我正在尝试在Java应用程序和数据库之间实现接口。 我实际上需要做的是通过可调用语句从不同数据库调用过程。 但是数据库必须依赖于客户端,并且如果我说使用mysql db或oracle db,则参数的数量会发生变化。

示例:

header mysql proc

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

header 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);

我还有一个ColumnName和Value的HashMap,我想在其中调用我的过程。

我的问题: 我如何有效地映射这两个? 是否有我可以使用的lib或框架,或者我必须经历每种情况?

那将意味着:

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

以此类推

0 个答案:

没有答案