关于实体类的理解
實(shí)體類是在JAVA軟件開發(fā)中廣泛使用的概念。 但是網(wǎng)上少有講清楚到底是什么的。本期我來(lái)講一講什么是實(shí)體類。
首先,直觀的看:
實(shí)體類就是一個(gè)擁有Set和Get方法的類。實(shí)體類通常總是和數(shù)據(jù)庫(kù)之類的(所謂持久層數(shù)據(jù))聯(lián)系在一起。這種聯(lián)系是借由框架(如Hibernate)來(lái)建立的。
其次說(shuō)定義(比較生澀難懂):
實(shí)體類主要是作為數(shù)據(jù)管理和業(yè)務(wù)邏輯處理層面上存在的類別; 它們主要在分析階段區(qū)分 實(shí)體類的主要職責(zé)是存儲(chǔ)和管理系統(tǒng)內(nèi)部的信息,它也可以有行為,甚至很復(fù)雜的行為,但這些行為必須與它所代表的實(shí)體對(duì)象密切相關(guān)。
這段話看起來(lái)不太好懂,應(yīng)該結(jié)合實(shí)體類的作用來(lái)看:
實(shí)體類的作用(需要面向?qū)ο蟮囊稽c(diǎn)很基本的知識(shí)):
實(shí)體類就是一個(gè)載體。
現(xiàn)在的設(shè)計(jì)差不多都是一張表就等于業(yè)務(wù)里面的一個(gè)類。一條記錄(一般一行數(shù)據(jù))是一個(gè)對(duì)象,一行中的一列就是這個(gè)對(duì)象的一個(gè)屬性。
所以我們?cè)诓僮髂硞€(gè)表時(shí)(比如更改這個(gè)表的信息),我們就可以在前臺(tái)定義一個(gè)這樣的對(duì)象,然后將其對(duì)應(yīng)的屬性賦值,然后傳到后臺(tái)。
這樣后臺(tái)就可以拿到這個(gè)對(duì)象的所有值了——不用一個(gè)一個(gè)屬性當(dāng)參數(shù)傳過(guò)來(lái),只要傳一個(gè)這個(gè)類的對(duì)象就好了,也就是說(shuō)只要一個(gè)參數(shù)就好了。好處不言而喻。
而這種前臺(tái)對(duì)象到后臺(tái)數(shù)據(jù)庫(kù)的聯(lián)系,我們是借由框架、配置文件來(lái)配置實(shí)現(xiàn)的,很方便快捷。并不需要自己手動(dòng)編程實(shí)現(xiàn)。
簡(jiǎn)而言之,(大多數(shù)情況下)實(shí)體類就是數(shù)據(jù)庫(kù)在Java代碼中對(duì)應(yīng)的東東。
最后,摘抄一點(diǎn)JavaPeak大大使用實(shí)體類的經(jīng)驗(yàn):
一、實(shí)體類的名字盡量和數(shù)據(jù)庫(kù)的表的名字對(duì)應(yīng)相同。
二、實(shí)體類應(yīng)該實(shí)現(xiàn)java.io.Serializable接口。
三、實(shí)體類應(yīng)該有個(gè)無(wú)參的構(gòu)造方法。
四、實(shí)體類應(yīng)該有個(gè)有參(所有的參數(shù))的構(gòu)造方法。
五、實(shí)體類有屬性和方法,屬性對(duì)應(yīng)數(shù)據(jù)庫(kù)中表的字段,方法主要有g(shù)etter和setter方法。
六、實(shí)體類還應(yīng)該有個(gè)屬性serialVersionUID。
例如:private static final long serialVersionUID = -6125297654796395674L;
七、屬性一般是private類型,方法為public類型,對(duì)于數(shù)據(jù)庫(kù)自動(dòng)生成的ID字段對(duì)應(yīng)的
屬性的set方法為private。
總結(jié)
- 上一篇: GaussDB-关系性数据库架构的演进
- 下一篇: FRP内网穿透--实现公网ip远程访问内