Hibernate中VO與PO

O/R Mapping -- Object Relational Mapping(對象關係映射)的縮寫。通俗點講,就是將對象與關係數據綁定,用對象來表示關係數據。如圖:



 

VO -- Value Object 值對象。
PO -- Persisent Object 持久對象。


它們的基本形式和寫法如下:

public class User {
    private String id;
    private String name;

    public void setId(String argId) {
        this.id = argId;
    }

    public String getId() {
        return this.id;
    }

    public void setName(String argName) {
        this.name = argName;
    }

    public String getName() {
        return this.Name;
    }
}
雖然它們的形式與寫法基本相同,但意義卻大不相同。
1.VO是用new關鍵字創建,由GC回收的。
   PO是向數據庫中添加新數據時創建,刪除數據庫中數據時刪除的。並且它只能存活在一個數據庫連接中,當連接斷開時,將被銷燬。
2.VO是值對象,精確點講它是業務對象,是存活在業務層的,是業務邏輯使用的,它存活的目的就是爲數據提供一個生存的地方。
   PO是有狀態的,每個屬性代表其當前的狀態。它是物理數據的對象表示。使用它,可以使我們的程序與物理數據解耦,並且可以簡化對象數據與物理數據之間的轉換。
3.VO的屬性是根據當前業務的不同而不同的,也就是說,它的每一個屬性都一一對應當前業務邏輯所需要的數據的名稱。
   PO的屬性是跟數據庫表的字段一一對應的。

  • b4003d73-d1ec-3ce7-8543-58bbdb2d38c3-thumb.jpg
  • 大小: 24.4 KB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章