2012-04-29 46 views
2

上週五我去了一家IT諮詢公司的採訪。關於Hibernate集成的訪談

訪員問我關於我的項目和我參與的項目。

突然間,他在休眠時拋出了一個問題。他的問題如下

「如果我有一個使用Java EE環境在MVC架構中開發的項目,但是使用JDBC進行數據庫交互,我將如何整合Hibernate到其中。我不想打擾現有的代碼,所有以前的JDBC代碼應該是完好無損的。「

我告訴他我們在現有代碼中添加了hibernate的所有功能,因爲它只需要Config文件,實體就是這樣。舊的JDBC代碼本身可能使用Datasourse來獲取連接,可以使用JNDI查找相同的數據庫來在Hibernate中構建會話工廠,而不是一件大事。

但面試官對我的回答並不滿意,他需要更多的解釋。 我無法打動他。

所以,你可以請建議什麼應該是上述問題的可能答案。 或者至少給我一個提示,以便我可以得出答案。

回答

2

我想他想要的答案如下。

典型的應用設計需要圖層分離。有以下經典圖層:Web層,業務邏輯和數據庫。有一個名爲DAO(數據訪問對象)的薄層,用Java編寫,在業務邏輯和數據庫之間起着「中間人」的作用。這聽起來這個層是用普通的JDBC實現的。

所以,沒有什麼問題可以用這個Hibernate替代這個層,而只有這個層。

現在您可以添加更多關於如何配置Hibernate的細節,並將其與應用程序的其餘部分集成。

0

我想他可能是找你解釋如何可能會:

  • 把Hibernate的包裝圍繞現有的SQL查詢,或
  • 用於傳統SQL表
  • 創建Hibernate的綁定,或
  • 整合休眠和使用容器級事務的傳統JDBC。

(很顯然,他不問你會怎麼更換舊JDBC代碼與Hibernate代碼...)

不過,當然,你真的需要問他是什麼他期望您在回答問題時展示知識/經驗。

0

不是一個確切的答案,你沒有提到你的應用程序使用了哪個框架,但是如果你的應用程序使用Spring框架,this my question及其答案將對你有所幫助,但是我的問題是相反的,因爲我想將jdbc與hibernate集成在一起。