【发布时间】:2012-10-10 00:41:47
【问题描述】:
我正在开发一个基于 Java 的项目,其中的事情是通过以下方式实现的
- 有一些类 (A,B,C,D....) 将 Hash Map 的键作为整数,将值作为字符串的数组列表。 arraylist 中的每个 String 元素都是一个 Oracle SQL 查询(INSERT 或 UPDATE)
-
(A,B,C,D....) 类的这些方法在 Map 中循环。使用 JDBC 语句 (
**stmt.addBatch(String)**) 将特定键的所有 SQL 查询添加到批处理中。对于每个唯一键,都会创建和执行一个单独的批处理。 - 有许多类 (X,Y,Z...) 正在填充此 Map 和字符串数组列表以放置不同的 INSERT 和 UPDATE 查询
现在,我需要为一些键添加一个 Oracle 过程调用,因此应该为各个键添加到字符串数组列表中。
我尝试在调用过程中添加以下字符串,但似乎没有一个适合我。
1. EXEC INSERT_AUTONUMBER_DATA(......)
2. BEGIN INSERT_AUTONUMBER_DATA(........) END;
我不想修改太多代码,因为它可能会影响其他区域。
我可以在批处理中添加一个 Callable 语句,但为此,我需要修改负责准备批处理的所有方法和类,这些方法和类在我的项目中大约 15 个(项目设计不是很好),另外,我必须编写一个标识过程调用的条件,以便准备一个可调用语句而不是语句。
有没有其他方法可以做到这一点,而不改变执行批次的类?
【问题讨论】:
标签: java oracle stored-procedures jdbc callable-statement