JDO與值對象
JDO是一種Java持久性技術,可以用來將POJO(普通的舊Java對象)存儲到數據庫中,而無需瞭解不同數據存儲的底層實現。值對象(也稱為數據傳輸對象)是一種抽象的設計模式,它引入了簡單數據保持器的概念,用於在多個層和多個層之間傳輸數據。
什麼是JDO?
JDO(javadataobjects)提供了一種向Java對象和數據庫訪問提供持久性的機制。JDO是高度透明的,因為它允許Java應用程序開發人員訪問底層數據,而不必編寫任何特定於數據庫的代碼。JDO可以跨多個層使用,包括Java標準版、Web層和應用服務器。jdoapi是Java對象的其他持久性(在程序中止後保留對象)的替代方法,例如序列化、JDBC(Java數據庫連接)和EJB-CMP(企業JavaBeans體系結構容器管理的持久性)。XML代碼的增強和使用。使用jdoapi的主要優點是它們可以存儲數據,而無需學習新的查詢語言,如SQL(取決於數據存儲的類型)。JDO非常容易使用,因為開發人員只能專注於他們的領域對象模型。不僅如此,JDO還根據數據訪問來優化代碼。由於jdoapi對數據存儲的類型並不嚴格,因此java應用程序開發人員可以使用相同的接口將java對象存儲到任何數據存儲中,包括關係數據庫、對象數據庫或XML。JDO具有很高的可移植性,因為在不同的供應商實現上不需要修改或重新編譯。
什麼是價值對象?
值對象也稱為數據傳輸對象(datatransferobjects,DTO)是一種簡單的抽象設計模式,它處理數據容器來保存數據,以便在層和層之間傳輸數據。儘管這種模式最準確的術語是數據傳輸對象,但由於核心J2EE的第一個版本中的一個錯誤,它被引入為值對象。雖然這個錯誤在第二版中得到了糾正,但這個名稱變得流行起來,並且仍然大量使用,而不是數據傳輸對象(但是應該注意的是,正確的術語是數據傳輸對象)。DTO設計模式與實體bean、JDBC和JDO一起使用,以糾正企業應用程序中與隔離和事務相關的問題。需要注意的是,這些只是用於在客戶機和數據庫之間傳輸數據的簡單數據持有者,它們不提供任何類型的持久性。DTO的作用是在傳統EJB中充當可序列化的對象(因為3.0之前的實體bean是不可序列化的)。在由DTO定義的單獨的組裝階段中,視圖使用的所有數據都是在控件釋放到表示層之前獲取和封送的。
JDO和Value Object有什麼區別?