2015-08-23 51 views
0

我已經將jack rabbit與Oracle數據庫集成在一起,並且我使用Jackrabbit存儲數據,如果我不想使用Jackrabbit 檢索數據,我可以以何種方式獲取數據。在數據庫中數據存儲在 blob類型。如何在不使用apache jackrabbit數據存儲的情況下從數據庫中檢索數據?

+0

簡短的回答是,你不能。如果您需要直接訪問數據庫中的數據,請考慮使用例如。一個ORM框架。 – TedTrippin

+0

@TedTrippin一個ORM框架是封裝了一點(或更多)抽象的代碼。但是這段代碼最終還需要通過JDBC訪問數據庫,那麼爲什麼OP還不能用自己的自定義代碼來完成呢?他應該能夠研究http://jackrabbit.apache.org/jcr/object-content-mapping.html的代碼,然後可以獲取內容,儘管可能不是一個,而是每個文檔的多個查詢,這些功能在Oracle中受到支持,並且可能使事情變得更簡單。我想這會是「長期的答案」? –

+1

如果OP必須達到這些長度,那麼他們選擇了錯誤的技術。我的觀點是,通過使用ORM,可以直接從數據庫直接訪問數據,而無需「學習代碼」並編寫自定義代碼。 – TedTrippin

回答

0

正如@TedTrippin上面已經提到的,一個ORM框架將使事情變得更加簡單。但如果你真的想手動在Oracle中做到這一點,該方法是:

研究的OCM http://jackrabbit.apache.org/jcr/object-content-mapping.html的代碼,然後根據從Oracle協會的邏輯關係獲取內容,很可能在一個沒有,但每個文檔多個查詢;最終使用用戶定義的函數,這些函數在Oracle中受支持並可能使事情變得更容易。

很想知道你的問題的背景。你用「Spring」和「CMS」標記了它。我看不出有什麼理由要直接從Oracle訪問數據,這很乏味。如果您想爲外部系統提供內容的API,或者如果您丟失了曾經在前面的CMS,並且只使用Jackrabbit repo作爲內容存儲庫,則仍然可以使用此類ORM/OCM框架獨立使得更容易訪問數據。

1

的方式兔崽子存儲在數據庫中的數據是一個實現細節,它不會神奇地映射到一個「好」 DB模式這一點,如果這是你的意思。 (層次性和所有JCR功能使這成爲不可能)。這有點像擁有一個Unix文件系統,然後詢問如何從文件系統實現中讀取低級別的inode等 - 你真的不應該這樣做。

最後但並非最不重要的一點是,雖然它沒有運行(除了Jackrabbit集羣設置),但必須寫入DB(由Jackrabbit使用的表),因爲這很容易導致數據損壞。

相關問題