博佐的第二次修订答案很接近,但还远远不够。它的确使我找到了答案。
以我开始的代码示例为例:
CallableStatement proc = connection.prepareCall("{ ? = call dbo.mySproc() }");proc.registerOutParameter(1, Types.INTEGER);proc.execute();int returnValue = proc.getInt(1);这里的关键部分是
prepareCall函数中“调用”前面的“?=”,它为返回值和
registerOutputParameter。它必须注册为Integer,因为返回值始终是int(至少在SQL
Server中,也许在其他DB中有所不同)。因此,您必须使用来获取它
getInt。我测试了这种方法,它确实起作用。



