代码之家  ›  专栏  ›  技术社区  ›  jeph perro

Oracle存储过程能否返回Java中可用的对象?

  •  1
  • jeph perro  · 技术社区  · 14 年前

    我正在和一个PL/SQL开发人员一起进行一个项目。另一个开发人员正在编写我需要调用的存储过程。

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

    名称,价格,描述,颜色, 重量、制造商等(15 共条信息)

    我假设存储过程将接受一个IN参数、产品id并返回15个OUT参数。

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

    3 回复  |  直到 14 年前
        1
  •  3
  •   Justin Cave    14 年前

    我的首选方法是,过程(或者如果它只是检索产品信息,则返回函数)返回一个PL/SQL产品对象,Java代码将其作为Java.SQL.STRUCT或更强类型的对象检索。

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

        2
  •  0
  •   Bozho    14 年前

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

        3
  •  -2
  •   AlanNg    14 年前

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