2011-06-12 89 views
1

我打算通過​​,他們說hibernate不適合以數據爲中心的應用程序。我對它給程序的'面向對象的結構'印象非常深刻,但我的應用程序是以數據爲中心的(它提取和更新大量記錄,但是我不使用任何存儲過程)。不能使用Hibernate嗎?是否有任何包裝器在hibernate上編寫,可以用於我的應用程序?任何幫助表示感謝。我可以將hibernate用於數據中心應用程序嗎?

回答

2

我不確定短語data centric的具體含義。不是所有的數據庫應用程序data centric?但是,如果您處理大量數據,Hibernate可能不是最佳選擇。 Hibernate最好是表示映射到數據庫的對象模型,它可能在任何應用程序中都有作用,但是要執行ETL(提取/轉換/加載)任務,您可能需要手動編寫非常高效的SQL。

+0

感謝您的回覆。正如你所猜測的那樣,數據爲中心,我的意思是處理大量數據。但是在這種情況下是否有任何包裝可用於使用休眠? – hnm 2011-06-12 05:41:29

+0

@hnm你不需要包裝。你可以直接使用Hibernate。但它不是非常有效。您可以始終爲較不密集的情況設置Hibernate基礎結構,並且可以將Hibernate的本機SQL用於繁重的數據處理。順便說一句,我是Hibernate的一大樂趣,但我對它的侷限性感到很現實。 – 2011-06-12 05:44:59

+0

感謝您寶貴的建議。 – hnm 2011-06-12 05:46:43

1

原則上你可以,但它往往很慢。 Hibernate或多或少地爲從數據庫中檢索的每一行創建一個對象。如果您使用大量數據完成此操作,性能會受到嚴重影響。同時更新多行使用一個更新只有非常基本的支持。

包裝不會幫助,至少與對象創建問題。

1

使用Hibernate有很多好處,當他們的對象模型像開發人員一樣正確時,通過對象與數據庫進行交互時有很大的吸引力,但實際上我發現最初Hibernate很好,但是當你會遇到性能和故障查找等問題。

談到DA(數據訪問)層的決定時,我問自己這個問題。 我正在編寫一個需要運行不同數據庫的應用程序嗎?

如果答案是肯定的,那麼我會考慮一個類似Hibernate的(ORM)。 如果沒有,那麼我通常會通過Spring正常使用JDBC。

我覺得通過JDBC與數據庫交互更加透明,更容易找到故障和性能調整。

+0

感謝您的回覆。 – hnm 2011-06-15 10:40:07

相關問題