Oracle存储过程是否可以返回可在Java中使用的对象?

时间:2010-11-12 23:45:28

标签: java oracle stored-procedures object

我正在与项目的PL / SQL开发人员合作。另一个开发人员正在编写我需要调用的存储过程。

其中一个存储过程需要返回有关产品的所有内容:

  

名称,价格,描述,颜色,   重量,制造商等 - (15   信息总数)

我假设存储过程接受一个I​​N参数,product-id并返回15 OUT参数。

存储过程是否可以返回可以转换为自定义数据类型的对象?这是一种典型的技术,还是通常会返回多个OUT参数?

3 个答案:

答案 0 :(得分:3)

我的偏好是程序(或者只是检索产品信息,一个函数)返回了一个PL / SQL产品对象,Java代码将其检索为java.sql.STRUCT或更强类型对象

Oracle在其网站上提供了这两种方法的示例代码。以下是java.sql.STRUCT approach的示例。这是strongly typed object approach。强类型示例使用JPublisher创建强类型对象类,但JDBC Developer's Guide引导您创建自己的映射。

答案 1 :(得分:0)

Hibernate provides a way将sql查询或存储过程的结果映射到java对象。它是一个复杂的对象 - 关系映射解决方案,但在大多数情况下,这是值得的。

答案 2 :(得分:-2)

SQL查询无法以任何方式返回对象 你应该只返回一个select运算符的结果,然后用结果自己构造一个对象