DTO:數據傳遞對象:
與其通過多次調用來獲取一組相關數據,不如用一次調用獲取一個包含了我們在當前事務中所需要的所有東西的定製對象。
串串燒:
PatientBean即我們定製的對象。這個對象提供了一組的get和set方法,來操作數據項。我們只要得到了這個對象,則可以操作所有當前事務中要操作的數據項了。
如何得到該對象?ejbLoad方法
首先從EntityContext中找到要找對象的主鍵(getPrimaryKey),然後建立JNDI lookup的本地方法,Connection con=getConnection。準備好sql語句,PreparedStatment ps=con.prepareStatement,最後運行sql,得到ResultSet,從ResultSet中,我們得到相應的東西,來初始化這個對象。有時候,要得到信息,還需要表的聯接,這也通過運行相應的sql語句。
行集DTO:
包裝一個ResultSet,我們可以通過getRow(index)得到ResultSet的某一行。主要ResultSet只是提供next方法,只能順序遍歷。ResultSetMetaData md=ResultSet.getMetaData()。md.getColumnName().可以提供列名信息(各列屬性)。
DAO:數據訪問對象:
從外部數據源讀取數據,並提供對象(DTO對象)給業務組件使用。DAO非遠程對象,對數據操作只能是存取,不能有業務方法。findPatient savePatient。然後,ejbLoad就可以調用findPatient方法了。
DAO工廠模式:可以根據系統屬性,創建相應的PatientDAO。System.getProperty
LazyLoad:需要時才載入,特別是一些表的聯接等耗時操作。
isDirty模式:被修改過的才寫入(如只要寫一個表,其它四個沒改過)
PAO:過程訪問對象,DAO的特殊形式,PAO增加了處理業務的能力(通過Command模式,如提供execute方法)