gpt4 book ai didi

Java JDBC : Why is it necessary to register out-parameter?

转载 作者:行者123 更新时间:2023-11-29 03:59:47 27 4
gpt4 key购买 nike

我目前必须学习Java JDBC。

今天我了解了如何从 JDBC 中调用存储过程。

当我有一个像这样的存储过程时,我没有得到...

CREATE PROCEDURE demo.get_count_for_department
(IN the_department VARCHAR(64), OUT the_count INT)
BEGIN
...

“the_count”被标记为输出参数。还指定了类型。所以这一切都应该知道。

尽管如此,我必须再次指定类型

statement.registerOutParameter(2, Types.INTEGER);

我必须再把字体放在那里吗?这对我来说似乎是多余的。

为什么我必须在其中提供两个参数?

statement = connection.prepareCall("{call get_count_for_department(?, ?)}");

我还没有在任何其他编程语言中看到过这一点。您只需要注意输入参数。因为出参数需要函数本身。

为什么这里不一样?

也许有人可以给我留言。这样我就可以更好地了解这些存储过程调用的工作原理。

最佳答案

原因是从java的角度来看,sql语句只是一个字符串。

JDBC 驱动程序的任务是将该字符串发送到数据库并接收结果。

您可以读取存储过程元数据以获取有关您将要调用的存储过程的信息,但这需要时间并且可能需要对数据库进行多次查询。

如果您想要这种集成,您可以从 JDBC 升级并使用某种实用程序或框架将 DB 对象映射到 Java 对象。

关于Java JDBC : Why is it necessary to register out-parameter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42745868/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com