我的数据库示例中有多个存储过程:proc1,proc2,... proc10。
我想在java的循环中调用它们。为避免多次网络跳闸,重复编译,性能,最好的方法是什么?
这就是我现在所拥有的:
for (int i = 1; i <= 10; i++)
{
CallableStatement stmt = conn.prepareCall("call proc"+i);
stmt.execute()
}
我不想执行一个调用这10个过程的顶级过程,因为我希望从我的代码中更多地控制这些执行。例如,我执行5个程序后可能会得到一个中断,可能需要进行上下文切换。当我在服务器端执行顶级程序时,我不能这样做
答案 0 :(得分:2)
一种方法是编写另一个按顺序调用proc1
到proc10
的存储过程。称“超级程序”应该是一次往返。
参考:
我[...]必须排除该选项,因为我希望从我的代码中更多地控制这些执行。
如果您需要从代码中进行控制,那么您目前正在做的事情几乎没有其他选择。控制代码意味着您的代码必须在每次调用存储过程之间执行。这反过来意味着(至少)每次通话之间的往返。
(我想,你可以为每个场景编写或者生成不同的超级程序。但这与我的建议基本相同。)