实体类定义规则以及主要实体类详解
1.實體類概述
?
1.1什么是實體類
眾所周知實體類是在java開發中被應運到的,但是什么是實體類?
1.11實體類的定義
百度百科查閱說:實體類主要是作為數據管理和業務邏輯處理層面上存在的類別; 它們主要在分析階段區分 實體類的主要職責是存儲和管理系統內部的信息,它也可以有行為,甚至很復雜的行為,但這些行為必須與它所代表的實體對象密切相關。
?
1.12實體類的作用
實體類相當于是一個載體:
1.我們首先在idear中定義我們與數據庫表相對應的實體類,這個實體類映射了我們數據庫表里所對應的信息(很簡單的解釋就是我們的數據庫里面的表是怎么設計的,有多少個屬性,分別是什么類型,我們就在我們的idear中定義這樣的一個實體類)
2.當我們要對目標表進行操作的時候,首先會將目標表對應的idear中的實體類的屬性賦值然后傳到后臺。
3.后臺就可以拿到目標表對應的對象的所有屬性的值,(傳遞過來的是一個對象,里面帶有所有屬性的值)就不用一個個的傳遞參數了。
4.具體實現這種數據從前臺到后臺的聯系可以通過框架,配置文件來進行實現。
ps:實體類合適的設計,能夠很好的實現信息的隱蔽,使代碼更加簡潔,設計實體類的時候要慎重。
2.實體類定義規則
2.1 po類(entity):persistent object持久對象
? 有時候也被稱為Data對象,對應數據庫中的entity,可以簡單認為一個PO對應數據庫中的一條記錄,多個記錄可以用PO的集合。
2.1.1注意的是:po中不能包含對任何數據庫的操作。
2.2 vo類:value object表現層對象
2.2.1 主要對應頁面顯示(web頁面/swt
,swing界面)的數據對象,他的對應對象可以是一個WEB頁面,或者SWT、SWING的一個界面,通常用一個VO對象對應整個界面的值;
2.2.2 可以和表對應,也可以不,具體根據業務的需求
2.3 補充po與vo的區別:
? 2.3.1 VO是值對象,精確點講它是業務對象,是存活在業務層的,是業務邏輯使用的,它存活的目的就是為數據提供一個生存的地方
? 2.3.2 VO是用new關鍵字創建,由GC回收的
? 2.3.3 VO的屬性是根據當前業務的不同而不同的,也就是說,它的每一個屬性都一一對應當前業務邏輯所需要的數據的名稱
? 2.3.4 PO則是向數據庫中添加新數據時創建,刪除數據庫中數據時削除的。并且它只能存活在一個數據庫連接中,斷開連接即被銷毀
2.3.5 PO則是有狀態的,每個屬性代表其當前的狀態。它是物理數據的對象表示。使用它,可以使程序與物理數據解耦,并且可以簡化對象數據與物理數據之間的轉換
? 2.3.6 PO的屬性是跟數據庫表的字段一一對應的
? 2.3.7 PO對象需要實現序列化接口
2.4 DTO(TO):Data Transfer Object 數據傳輸對象
傳遞view層顯示的,我們需要的,client真正需要的字段。
ps:引用狂神大大的描述:比如一張表有100個字段,對應的PO就有100個屬性(大多數情況下,DTO內的數據來自多個表)。但view層只需顯示10
個字段,沒有必要把整個PO對象傳遞到client,這時候我們就可以用只有這10個屬性的DTO來傳輸數據到client,這樣也不會暴露server端的表結構。到達客戶端之后,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO.
2.5 POJO:plain ordinary java object 無規則簡單java對象
? 此對象我們就把他看做為了轉化為PO,DTO,VO的中間對象
? pojo持久化之后 —> PO
? pojo作用表示層 —> VO
? pojo 傳輸過程中 —> DTO
2.6 O/R Mapper : Object Relational Mapping:對象/關系 映射*
O/R Mapper可以通過mappings將生成的所有關于對象保存,刪除,讀取的SQL語句,我們不再需要寫那么多行的DAL代碼了
2.7 QO: Query Object:查詢對象
存儲一些與持久性查詢操作的語句對象
例子:
主要作用是把service需要的屬性封裝為一個對象。
建立一個對應查詢的的QO對象
這樣進行查詢時,我們就可以用QO去處理。增刪改的時候通過下面方法去進行轉化
2.8 BO:business object:業務對象
封裝業務邏輯的java對象,通過調用DAO方法,結合PO,VO進行業務操作 ;
例子:
主要作用是把業務邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。
比如一個簡歷,有教育經歷、工作經歷、社會關系等等。
我們可以把教育經歷對應一個PO,工作經歷對應一個PO,社會關系對應一個PO。
建立一個對應簡歷的BO對象處理簡歷,每個BO包含這些PO。
這樣處理業務邏輯時,我們就可以針對BO去處理。
2.9 TO Transfer Object:數據傳輸對象
應用程序不同關系之間傳輸的對象
3.0 DO Domain Object:領域對象
就是從現實世界中抽象出來的有形或無形的業務實體
實體類使用的經驗:
? 1.記得加有參,無參構造
? 2.與數據庫表的命名相同(要不然幾十個表你找你要的字段根本找不到),千萬不要少s,多s什么的
? 3.idear中小駝峰命名,數據庫中才能出現_命名(數據庫把__命名法會自動轉化為小駝峰命名)
? 4.實體類有屬性和方法,屬性對應數據庫中表的字段,方法主要有getter和setter方法
5.屬性一般是private類型,方法為public類型,對于數據庫自動生成的ID字段對應的屬性的set方法為private
6.每個實體類都最好有自己的id字段
7.實體類應該實現java.io.Serializable接口
總結
以上是生活随笔為你收集整理的实体类定义规则以及主要实体类详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sping错误集合
- 下一篇: GAMS-01 GAMS与MATLAB间