Java的POJO和JavaBean的区别

时间:2022-01-24 19:05:48

POJO

  Plain Ordinary Java Object,即简单的java对象。

特点

  需要有一些 private 的参数,以及针对参数的 setter 和 getter 方法来访问这些参数。

  不包含业务逻辑或持久逻辑,不继承或不实现任何其它Java框架的类或接口。

实例

 1 /**
 2  * @author jyroy
 3  *    POJO
 4  */
 5 public class StudentPOJO {
 6     private String stuid;
 7     private String name;
 8     private int age;
 9     public String getStuid() {
10         return stuid;
11     }
12     public void setStuid(String stuid) {
13         this.stuid = stuid;
14     }
15     public String getName() {
16         return name;
17     }
18     public void setName(String name) {
19         this.name = name;
20     }
21     public int getAge() {
22         return age;
23     }
24     public void setAge(int age) {
25         this.age = age;
26     }
27 }

 

JavaBean

  JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。

  PS: 可以看我的另外一篇博客 什么是JavaBean?

特点

  •  提供一个默认的无参构造函数。
  •  需要被序列化并且实现了Serializable接口。
  •  可能有一系列可读写属性。
  •  可能有一系列的"getter"或"setter"方法。

实例

 1 /**
 2  * @author jyroy
 3  *    JavaBean
 4  */
 5 public class StudentBean implements java.io.Serializable{
 6    private String firstName = null;
 7    private String lastName = null;
 8    private int age = 0;
 9    //无参构造函数
10    public StudentBean() {
11    }
12    public String getFirstName(){
13       return firstName;
14    }
15    public String getLastName(){
16       return lastName;
17    }
18    public int getAge(){
19       return age;
20    }
21    public void setFirstName(String firstName){
22       this.firstName = firstName;
23    }
24    public void setLastName(String lastName){
25       this.lastName = lastName;
26    }
27    public void setAge(int age) {
28       this.age = age;
29    }
30 }

 

二者区别

  1.  POJO是普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件。
  2.  一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。
  3.  POJO不担当任何特殊的角色,也不实现任何特殊的Java框架的接口。