我正在與項目的PL/SQL開發人員合作。另一個開發人員正在編寫我需要調用的存儲過程。Oracle存儲過程可以返回Java中可用的對象嗎?
一個存儲過程需要返回關於產品的一切:
名稱,價格,描述,色彩, 重量,生產廠家等 - (共15條 件信息的)
我假設存儲過程會接受一個IN參數,product-id並返回15個OUT參數。
有沒有一種方法可以讓存儲過程返回一個可以轉換爲自定義數據類型的對象?這是一種典型的技術,還是通常會返回多個OUT參數?
我正在與項目的PL/SQL開發人員合作。另一個開發人員正在編寫我需要調用的存儲過程。Oracle存儲過程可以返回Java中可用的對象嗎?
一個存儲過程需要返回關於產品的一切:
名稱,價格,描述,色彩, 重量,生產廠家等 - (共15條 件信息的)
我假設存儲過程會接受一個IN參數,product-id並返回15個OUT參數。
有沒有一種方法可以讓存儲過程返回一個可以轉換爲自定義數據類型的對象?這是一種典型的技術,還是通常會返回多個OUT參數?
我的選擇是程序(或者如果它只是檢索產品信息,函數)返回一個Java代碼檢索爲Java.sql.STRUCT或更強烈的PL/SQL產品對象鍵入對象。
Oracle在其網站上提供了兩種方法的示例代碼。這裏是java.sql.STRUCT approach的一個例子。這裏是strongly typed object approach。強類型示例使用JPublisher創建強類型對象類,但JDBC Developer's Guide將引導您創建自己的映射。
另一個通過JDBC工作的鏈接:http://www.lorentzcenter.nl/awcourse/oracle/java.920/a96654/oraoot.htm – ThinkJet 2010-11-13 17:49:15
SQL查詢不能以任何方式返回一個對象 你應該只返回一個選擇操作的結果,那麼你自己構建的對象與結果
的Hiberante provides a way映射一個SQL查詢或存儲過程的結果到一個java對象。這是一個複雜的對象關係映射解決方案,但在大多數情況下,這是值得的。
我從未喜歡在Java中檢索OUT參數,更喜歡函數/ stored proc返回一個SYS_REFCURSOR並從Java中的resultset對象中拉出列。 – 2010-11-13 02:11:00