POJO、JAVABean、Entity的區別


POJO
  (Plain Ordinary Java Object)簡單的Java對象,實際就是普通JavaBeans,是為了避免和EJB混淆所創造的簡稱。
  其中有一些屬性及其getter、setter方法的類,沒有業務邏輯,有時可以作為VO(value-object)或DTO(Data Transfer Object)來使用。不允許有業務方法,也不能攜帶connection之類的方法,實際就是普通JavaBeans。POJO類中有屬性和get、set方法,但是沒有業務邏輯

 1 /**
 2  * POJO類代碼示例
 3  */  
 4 public class UserInfoPojoDemo {
 5 
 6     private int userId;// 用戶帳號
 7     private String pwd;// 用戶密碼
 8 
 9     /**
10      * Constructor
11      */
12     public UserInfoPojoDemo() {
13     }
14 
15     public UserInfoPojoDemo(String pwd) {
16         this.pwd = pwd;
17     }
18 
19     public UserInfoPojoDemo(int userId) {
20         this.userId = userId;
21     }
22 
23     public UserInfoPojoDemo(int userId, String pwd) {
24         this.userId = userId;
25         this.pwd = pwd;
26     }
27 
28     /**
29      *Access 
30      */
31     public int getUserId() {
32         return userId;
33     }
34 
35     public void setUserId(int userId) {
36         this.userId = userId;
37     }
38 
39     public String getPwd() {
40         return pwd;
41     }
42 
43     public void setPwd(String pwd) {
44         this.pwd = pwd;
45     }
46 
47 }

 JavaBean 是一種JAVA語言寫成的可重用組件。JavaBean符合一定規范編寫的Java類,不是一種技術,而是一種規范。大家針對這種規范,總結了很多開發技巧、工具函數。符合這種規范的類,可以被其它的程序員或者框架使用。它的方法命名,構造及行為必須符合特定的約定:

1、所有屬性為private。

2、這個類必須有一個公共的缺省構造函數。即是提供無參數的構造器。

3、這個類的屬性使用getter和setter來訪問,其他方法遵從標准命名規范。

4、這個類應是可序列化的。實現serializable接口。

因為這些要求主要是靠約定而不是靠實現接口,所以許多開發者把JavaBean看作遵從特定命名約定的POJO。

 1 public class UserInfo implements java.io.Serializable{  
 2 
 3 //實現serializable接口。  
 4 private static final long serialVersionUID = 1L;  
 5 
 6 private String name;  
 7 private int age;  
 8 
 9 //無參構造器  
10 public UserInfo() {  
11 
12 }  
13 
14 public String getName() {  
15     return name;  
16 }  
17 
18 public void setName(String name) {  
19     this.name = name;  
20 }  
21 
22 public int getAge() {  
23     return age;  
24 }  
25 
26 public void setAge(int age) {  
27     this.age = age;  
28 }  
29 
30 //javabean當中可以有其它的方法  
31 public void userInfoPrint(){  
32     System.out.println("");  
33  } 
34 }

區別
POJO其實是比javabean更純凈的簡單類或接口。POJO嚴格地遵守簡單對象的概念,而一些JavaBean中往往會封裝一些簡單邏輯。

POJO主要用於數據的臨時傳遞,它只能裝載數據, 作為數據存儲的載體,而不具有業務邏輯處理的能力。

Javabean雖然數據的獲取與POJO一樣,但是javabean當中可以有其它的方法。

entity(實體類)

對java實體類的眾多理解:

A .就是屬性類,通常定義在model層里面

B. 一般的實體類對應一個數據表,其中的屬性對應數據表中的字段。
好處:
1.對對象實體的封裝,體現OO思想。
2.屬性可以對字段定義和狀態進行判斷和過濾
3.把相關信息用一個實體類封裝后,我們在程序中可以把實體類作為參數傳遞,更加方便。

C. 說白了就是為了讓程序員在對數據庫操作的時候不用寫SQL語句

D. 就是一個數據庫表生成一個類
這樣做對數據庫操作起來方便
編寫代碼較少 提高效率 可以使程序員專注邏輯關系

E. 實體類就是把對某一個表的操作全寫在一個類中.

F. 在Java開發中經常要定義一些實體類,這些類的定義的好壞會直接影響,編寫代碼的質量和難易程度,以下是別人總結的一些經驗。

一、實體類的名字盡量和數據庫的表的名字對應相同。

二、實體類應該實現java.io.Serializable接口。

三、實體類應該有個無參的構造方法。

四、實體類應該有個有參(所有的參數)的構造方法。

五、實體類有屬性和方法,屬性對應數據庫中表的字段,主要有getter和setter方法。

六、實體類還應該有個屬性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;

七、屬性一般是private類型,方法位public類型,對於數據庫自動生成的ID字段對應的屬性的set方法應為private。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM