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的屬性是跟數據庫表的字段一一對應的。