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。