亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java實(shí)體類(lèi)(entity)作用說(shuō)明

瀏覽:72日期:2022-08-26 15:38:07

對(duì)java實(shí)體類(lèi)的眾多理解:

A .就是屬性類(lèi),通常定義在model層里面

B. 一般的實(shí)體類(lèi)對(duì)應(yīng)一個(gè)數(shù)據(jù)表,其中的屬性對(duì)應(yīng)數(shù)據(jù)表中的字段。

好處:

1.對(duì)對(duì)象實(shí)體的封裝,體現(xiàn)OO思想。

2.屬性可以對(duì)字段定義和狀態(tài)進(jìn)行判斷和過(guò)濾

3.把相關(guān)信息用一個(gè)實(shí)體類(lèi)封裝后,我們?cè)诔绦蛑锌梢园褜?shí)體類(lèi)作為參數(shù)傳遞,更加方便。

C. 說(shuō)白了就是為了讓程序員在對(duì)數(shù)據(jù)庫(kù)操作的時(shí)候不用寫(xiě)SQL語(yǔ)句

D. 就是一個(gè)數(shù)據(jù)庫(kù)表生成一個(gè)類(lèi)

這樣做對(duì)數(shù)據(jù)庫(kù)操作起來(lái)方便

編寫(xiě)代碼較少 提高效率 可以使程序員專(zhuān)注邏輯關(guān)系

E. 實(shí)體類(lèi)就是把對(duì)某一個(gè)表的操作全寫(xiě)在一個(gè)類(lèi)中.

F. 在Java開(kāi)發(fā)中經(jīng)常要定義一些實(shí)體類(lèi),這些類(lèi)的定義的好壞會(huì)直接影響,編寫(xiě)代碼的質(zhì)量和難易程度,以下是別人總結(jié)的一些經(jīng)驗(yàn)。

一、實(shí)體類(lèi)的名字盡量和數(shù)據(jù)庫(kù)的表的名字對(duì)應(yīng)相同。

二、實(shí)體類(lèi)應(yīng)該實(shí)現(xiàn)java.io.Serializable接口。

三、實(shí)體類(lèi)應(yīng)該有個(gè)無(wú)參的構(gòu)造方法。

四、實(shí)體類(lèi)應(yīng)該有個(gè)有參(所有的參數(shù))的構(gòu)造方法。

五、實(shí)體類(lèi)有屬性和方法,屬性對(duì)應(yīng)數(shù)據(jù)庫(kù)中表的字段,主要有g(shù)etter和setter方法。

六、實(shí)體類(lèi)還應(yīng)該有個(gè)屬性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;

七、屬性一般是private類(lèi)型,方法位public類(lèi)型,對(duì)于數(shù)據(jù)庫(kù)自動(dòng)生成的ID字段對(duì)應(yīng)的屬性的set方法應(yīng)為private。

G. 實(shí)體類(lèi)中都是實(shí)例對(duì)象,實(shí)例對(duì)象在jvm的堆區(qū)中開(kāi)辟了一個(gè)該對(duì)象引用空間,并且讓該引用指向某個(gè)實(shí)例,類(lèi)聲明只是在jvm的棧去中開(kāi)辟了一個(gè)該對(duì)象引用,沒(méi)有讓該引用做任何指向.

例如 :

1.String str;

2.String str = new String ('dgfgg');

1中的只是一個(gè)引用,說(shuō)明str應(yīng)該指向一個(gè)String 類(lèi)型的實(shí)例,但還沒(méi)對(duì)str和堆區(qū)的實(shí)例做具體的指向.也就是說(shuō)它還沒(méi)有指向某個(gè)實(shí)例.

而2中的即定義了一個(gè)引用(str)又對(duì)str做了具體的指向,它指向的內(nèi)容就是后面new出來(lái)的String 實(shí)例.

實(shí)體類(lèi)中的構(gòu)造方法+set方法+get方法:

構(gòu)造函數(shù):初始化成員變量

get,set方法,獲取和改變成員變量的值,JavaBean規(guī)范規(guī)定只使用get/set訪問(wèn)成員變量

構(gòu)造函數(shù):你每次寫(xiě)一個(gè)Java文件,實(shí)際上都寫(xiě)了一個(gè)類(lèi)(創(chuàng)建一個(gè)類(lèi),jvm就會(huì)自動(dòng)為這個(gè)類(lèi)開(kāi)辟一塊內(nèi)存空間)。有了類(lèi)就需要有類(lèi)對(duì)象,要產(chǎn)生類(lèi)對(duì)象就需要構(gòu)造函數(shù)對(duì)這個(gè)剛剛申請(qǐng)的內(nèi)存空間做一點(diǎn)事,賦屬性值之類(lèi)的工作。當(dāng)然,如果你不寫(xiě),它就默認(rèn)有一個(gè)Class(){}的構(gòu)造方法出現(xiàn),當(dāng)然它什么活也不干。

你的屬性是什么樣的?public?private?默認(rèn)?還是protected?這四種你找教材務(wù)必弄懂分清,很有用。如果是private,這種屬性不許別的對(duì)象改和讀,但有時(shí)候需要改/讀,怎么辦?寫(xiě)一個(gè)public void setAbc(xxx){}和一個(gè)public xxx getAbc(){}就實(shí)現(xiàn)外部讀寫(xiě)屬性的功能了。

set ,get完全是自我規(guī)定的,就是設(shè)置初值和獲得值的意思.你也可以修改成其他字符.但是用set ,get還是要好些,因?yàn)槟隳芡ㄟ^(guò)單詞理解你寫(xiě)的代碼的意思,方便閱讀而已。

總結(jié):實(shí)體是就是Java中的O/R Mapping映射,即數(shù)據(jù)庫(kù)中的一個(gè)表映射成對(duì)應(yīng)的一個(gè)Java類(lèi),其中還有一個(gè)映射文件。給定一個(gè)較復(fù)雜的實(shí)體關(guān)系(如一對(duì)一,一對(duì)多,多對(duì)多),應(yīng)該熟練地寫(xiě)出實(shí)體類(lèi)!!

java 實(shí)體類(lèi)其實(shí)就是俗稱(chēng)的POJO,這種類(lèi)一般不實(shí)現(xiàn)特殊框架下的接口,在程序中僅作為數(shù)據(jù)容器用來(lái)持久化存儲(chǔ)數(shù)據(jù)用的。

POJO(PlainOldJavaObjects)簡(jiǎn)單的Java對(duì)象

它的一般格式就是

publicclassA{ privateStringid; publicStringgetId{ returnthis.id; }publicvoidsetId(Stringid){ this.id=id; }}

其實(shí)這樣寫(xiě)的意義就在于封裝,id作為類(lèi)A的成員變量,也稱(chēng)屬性,一般情況下?lián)碛凶x和寫(xiě)的能力,我們將id設(shè)為private,則外部無(wú)法對(duì)其直接進(jìn)行操作,同時(shí)通過(guò)set方法提供了外部更改其value的方法,又通過(guò)get方法使外界能讀取該成員變量的值。

序列化的必要性

Java中,一切都是對(duì)象,在分布式環(huán)境中經(jīng)常需要將Object從這一端網(wǎng)絡(luò)或設(shè)備傳遞到另一端。這就需要有一種可以在兩端傳輸數(shù)據(jù)的協(xié)議。Java序列化機(jī)制就是為了解決這個(gè)問(wèn)題而產(chǎn)生。

Java對(duì)象序列化不僅保留一個(gè)對(duì)象的數(shù)據(jù),而且遞歸保存對(duì)象引用的每個(gè)對(duì)象的數(shù)據(jù)。

Java串行化技術(shù)可以使你將一個(gè)對(duì)象的狀態(tài)寫(xiě)入一個(gè)Byte流里,并且可以從其它地方把該Byte流里的數(shù)據(jù)讀出來(lái),重新構(gòu)造一個(gè)相同的對(duì)象。這種機(jī)制允許你將對(duì)象通過(guò)網(wǎng)絡(luò)進(jìn)行傳播,并可以隨時(shí)把對(duì)象持久化到數(shù)據(jù)庫(kù)、文件等系統(tǒng)里。Java的串行化機(jī)制是RMI、EJB等技術(shù)的技術(shù)基礎(chǔ)。用途:利用對(duì)象的串行化實(shí)現(xiàn)保存應(yīng)用程序的當(dāng)前工作狀態(tài),下次再啟動(dòng)的時(shí)候?qū)⒆詣?dòng)地恢復(fù)到上次執(zhí)行的狀態(tài)。

序列化就是一種用來(lái)處理對(duì)象流的機(jī)制,所謂對(duì)象流也就是將對(duì)象的內(nèi)容進(jìn)行流化。可以對(duì)流化后的對(duì)象進(jìn)行讀寫(xiě)操作,也可將流化后的對(duì)象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對(duì)對(duì)象流進(jìn)行讀寫(xiě)操作時(shí)所引發(fā)的問(wèn)題。

對(duì)于一個(gè)存在于Java虛擬機(jī)中的對(duì)象來(lái)說(shuō),其內(nèi)部的狀態(tài)只保持在內(nèi)存中。JVM停止之后,這些狀態(tài)就丟失了。在很多情況下,對(duì)象的內(nèi)部狀態(tài)是需要被持久化下來(lái)的。提到持久化,最直接的做法是保存到文件系統(tǒng)或是數(shù)據(jù)庫(kù)之中。這種做法一般涉及到自定義存儲(chǔ)格式以及繁瑣的數(shù)據(jù)轉(zhuǎn)換。

對(duì)象關(guān)系映射(Object-relationalmapping)是一種典型的用關(guān)系數(shù)據(jù)庫(kù)來(lái)持久化對(duì)象的方式,也存在很多直接存儲(chǔ)對(duì)象的對(duì)象數(shù)據(jù)庫(kù)。對(duì)象序列化機(jī)制(objectserialization)是Java語(yǔ)言內(nèi)建的一種對(duì)象持久化方式,可以很容易的在JVM中的活動(dòng)對(duì)象和字節(jié)數(shù)組(流)之間進(jìn)行轉(zhuǎn)換。除了可以很簡(jiǎn)單的實(shí)現(xiàn)持久化之外,序列化機(jī)制的另外一個(gè)重要用途是在遠(yuǎn)程方法調(diào)用中,用來(lái)對(duì)開(kāi)發(fā)人員屏蔽底層實(shí)現(xiàn)細(xì)節(jié)。

補(bǔ)充知識(shí):java 萬(wàn)能類(lèi)型轉(zhuǎn)化

是什么:

java 萬(wàn)能類(lèi)型轉(zhuǎn)化工具類(lèi),提供Short、Integer、Long、short、int、long 和 String之間的互轉(zhuǎn),且支持當(dāng)對(duì)象為空時(shí),進(jìn)行對(duì)象的創(chuàng)建。

怎么做:

見(jiàn)代碼:

/** * 如果對(duì)象為空,則創(chuàng)建,支持類(lèi)型裝換 * * 只支持 Long Integer Short 和 String 之間的互轉(zhuǎn) * @param obj Object * @param clazz Class<T> * @param <T> T * @return <T> */ public static <T> T ifNullCreate(Object obj,Class<T> clazz){ T result = null; if(obj == null){ try {result = clazz.newInstance(); } catch (Exception e) {e.printStackTrace(); } }else { if(clazz.isInstance(obj)){result = (T)obj ; }else if (clazz.equals(Long.class) && obj.getClass().equals(String.class)){Object o = Long.parseLong((String)obj) ;result = (T)o; }else if (clazz.equals(Integer.class) && obj.getClass().equals(String.class)){Object o = Integer.parseInt((String)obj) ;result = (T)o; }else if (clazz.equals(Short.class) && obj.getClass().equals(String.class)){Object o = Short.parseShort((String)obj) ;result = (T)o; }else if (clazz.equals(String.class) && ( obj.getClass().equals(Long.class) || obj.getClass().equals(long.class) || obj.getClass().equals(int.class) || obj.getClass().equals(Integer.class) || obj.getClass().equals(short.class) || obj.getClass().equals(Short.class) )){Object o = String.valueOf(obj) ;result = (T)o; } } return result; }

為什么?

日常開(kāi)發(fā)中,含有大量的類(lèi)型轉(zhuǎn)化和空值處理,提供一個(gè)萬(wàn)能接口很必要……

以上這篇Java實(shí)體類(lèi)(entity)作用說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 亚洲欧美日韩色 | 日韩精品欧美视频 | 三级国产在线观看 | 黄色免费高清视频 | 成年美女黄的视频网站 | 免费观看一级黄色片 | 久久黄色大片 | 1769视频在线观看国产 | 日本二区在线观看 | 久久99中文字幕伊人 | 网友自拍视频在线观看 | 婷婷六月久久综合丁香乐透 | 婷婷精品在线 | 亚洲国产精品综合久久20 | 中文字幕日韩欧美一区二区三区 | 一级做a爱免费观看视频 | 极品国模私拍福利在线观看 | 激情视频网站在线观看 | 欧美成人高清手机在线视频 | 在线 亚洲 欧美 | 国产人妖自拍 | 国产一区二区免费 | 青青青在线观看视频免费播放 | 高中生福利视频在线观看 | 秘书高跟黑色丝袜国产91在线 | 国产成人影院一区二区 | 久久爱伊人| japenese色系tube日本护士 | 国产乱理论片在线观看理论 | 国产亚洲精品成人久久网站 | 国产欧美日韩一区二区三区 | 婷婷色基地 | 一级全黄男女免费大片 | 香蕉一区二区三区观 | 一区二区精品 | 日本高清免费中文字幕不卡 | 成年女人在线观看 | 国产一区二区三区在线观看精品 | 亚洲最大色图 | 日本99视频| 欧美日本一道高清二区三区 |