Hibernate是什麼?從不同角度的解釋:
1、它是連接Java應用程序和關系數據庫的中間件。
2、它對JDBC API進行了封裝,負責Java對象的持久化。
3、在分層的軟件架構中它位於持久化層,封裝了所有數據訪問細節,使業務羅基層可以專注於實現業務邏輯。
4、它是一種 ORM(Object-Relation Mapping 對象-關系映射)工具,能夠建立面向對象的域模型和關系模型的映射。
應用程序分層體系結構:
1、表述層:提供與用戶交互的界面。
2、業務邏輯層:實現各種業務邏輯。
3、數據層:負責存放和管理應用的持久性業務。
軟件分層包含兩種含義:
一種是物理分層,即每一層都運行在單獨的機器上,這意味著創建分布式的軟件系統;
一種是邏輯分層,指的是在單個軟件模塊中完成特定的功能。
軟件分層必須符合以下特征:
1、每個層由一組相關的類或組件構成,共同完成特定的功能。
2、層與層之間存在自上而下的依賴關系,即上層組件會訪問下層組件的 API,而下層組件不應該依賴上層組件。
3、每個層對上層公開 API,但具體的實現細節對外透明。
軟件分層的優點:
適當的分層,將會提高軟件的以下性能。
1、伸縮性:指應用程序是否支持更多的用戶。例如數據庫連接。
2、可維護性:當發生需求變化,只需修改軟件的某一部分,不會影響其他部分的代碼。
3、可擴展性:在現有系統中增加新功能的難易程度。
4、可重用性:程序代碼沒有冗余,同一個程序能滿足多種需求。
5、可管理性:管理系統的難易程度。
缺點:
1、分層越多對軟件設計人員的要求越高。
2、分層越多調試越困難。
表通過主建來保證每條記錄的唯一性,表的主鍵應當不具有任何業務含義,因為任何有業務含義的列都有改變的可能性。關系數據庫學的最重要的一個理論就是:不要給關鍵字賦予任何業務意義。
在域模型中,類之間存在四種關系。
1、關聯:類之間的應用關系。
如果類A與類B關聯,那麼被引用的類B將被定義為類A的屬性。關聯還可以分為單項關聯和雙向關聯。
2、依賴:類之間的訪問關系。
如果類A訪問類B的屬性或方法,或者類A負責實例化類B,那麼可以說類A依賴類B.
3、聚集:整體與部分之間的關系。
4、繼承。