如何创build一个POJO?

最近我开始听说“POJO”(普通Java对象)。 我GOOGLE了,但仍然不理解这个概念。 任何人都可以给我一个POJO的清晰描述?

考虑一个variables“id,name,address,salary”的类“Person” – 我将如何为这个场景创build一个POJO? POJO下面的代码是?

public class Person { //variables People people = new People(); private int id; private String name; private String address; private int salary; public int getId() { return id; } public String getName() { return name; } public String getAddress() { return address; } public int getSalary() { return salary; } public void setId() { this.id = id; } public void setName() { this.name = name; } public void setAddress() { this.address = address; } public void setSalary() { this.salary = salary; } } 

POJO只是一个简单的旧Java Bean,删除了限制。 Java Bean必须满足以下要求:

  1. 默认的无参数构造函数
  2. 按照getFoo(或布尔值为isFoo)的Bean约定和setFoo方法来获取名为foo的可变属性; 如果foo是不可改变的,请closuressetFoo。
  3. 必须实现java.io.Serializable

POJO不要求任何这些。 正是这个名字所说的:一个在JDK下编译的对象可以被认为是一个普通的旧Java对象。 没有应用服务器,没有基类,没有需要使用的接口。

首字母缩略词POJO是针对EJB 2.0的一种反应,它需要几个接口,扩展基类和许多方法来做简单的事情。 其中有些人,罗德·约翰逊和马丁·福勒,反对复杂性,并寻求一种方法来实施企业级解决scheme,而不必编写EJB。

马丁福勒创造了一个新的缩写。

Spring写道,Rod Johnson编写的“无EJB的J2EE”,对EJB影响很大,所以3.1版本看起来像Spring和Hibernate一样,并且从VMWare中获得了一个甜头的IPO。

这里有一个例子,你可以围绕你的头:

 public class MyFirstPojo { private String name; public static void main(String [] args) { for (String arg : args) { MyFirstPojo pojo = new MyFirstPojo(arg); // Here's how you create a POJO System.out.println(pojo); } } public MyFirstPojo(String name) { this.name = name; } public String getName() { return this.name; } public String toString() { return this.name; } } 

POJO:POJO是一个Java对象,不受Java语言规范强制的限制。

POJO的属性

  1. 所有属性必须是公共setter和getter方法
  2. 所有实例variables都应该是私有的
  3. 不应该扩展预先指定的类。
  4. 不应该实现预先指定的接口。
  5. 不应该包含预先指定的注释。
  6. 它可能没有任何参数构造函数

POJO的例子

 public class POJO { private String value; public String getValue() { return value; } public void setValue(String value) { this.value = value; } } 

POJO是一个普通的旧Java对象 。

从我链接到的维基百科文章:

在计算软件中,POJO是Plain Old Java Object的缩写。 这个名字是用来强调给定的对象是一个普通的Java对象,而不是一个特殊的对象,特别是不是一个Enterprise JavaBean

你的class级似乎已经是一个POJO。

POJO类作为一个用来设置和获取值的bean。

 public class Data { private int id; private String deptname; private String date; private String name; private String mdate; private String mname; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getDeptname() { return deptname; } public void setDeptname(String deptname) { this.deptname = deptname; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMdate() { return mdate; } public void setMdate(String mdate) { this.mdate = mdate; } public String getMname() { return mname; } public void setMname(String mname) { this.mname = mname; } } 

当你没有做任何事情来让你的类特别devise用于一个给定的框架,ORM或其他需要特殊类的系统时,你就有了一个简单的旧Java对象(PO​​JO)。

具有讽刺意味的是,这个词的理由之一是人们在合理的情况下避开他们,有些人认为这是因为他们没有一个特别的名字。 具有讽刺意味的是,你的问题表明这种方法奏效。

比较旧的POD“普通旧数据”意味着一个C ++类,它不会做任何C结构无法做的事情(或多或less,非虚构成员不是析构函数或简单的构造函数不会阻止它被认为是POD),以及.NET中较新的(和更直接相似的)POCO“Plain Old CLR Object”。

主要有三种选项可能用于测绘目的

  1. 连载
  2. XML映射
  3. POJO映射(普通Java对象)

在使用pojo类时,开发人员很容易与数据库进行映射。 POJO类是为数据库创build的,同时值对象类是使用getter和setter方法创build的,这些方法可以轻松保存内容。

所以,为了在java和数据库之间映射,实现了value-objects和POJO类。

 public class UserInfo { String LoginId; String Password; String FirstName; String LastName; String Email; String Mobile; String Address; String DOB; public String getLoginId() { return LoginId; } public void setLoginId(String loginId) { LoginId = loginId; } public String getPassword() { return Password; } public void setPassword(String password) { Password = password; } public String getFirstName() { return FirstName; } public void setFirstName(String firstName) { FirstName = firstName; } public String getLastName() { return LastName; } public void setLastName(String lastName) { LastName = lastName; } public String getEmail() { return Email; } public void setEmail(String email) { Email = email; } public String getMobile() { return Mobile; } public void setMobile(String mobile) { Mobile = mobile; } public String getAddress() { return Address; } public void setAddress(String address) { Address = address; } public String getDOB() { return DOB; } public void setDOB(String DOB) { this.DOB = DOB; } } 
 import java.io.Serializable; public class Course implements Serializable { protected int courseId; protected String courseName; protected String courseType; public Course() { courseName = new String(); courseType = new String(); } public Course(String courseName, String courseType) { this.courseName = courseName; this.courseType = courseType; } public Course(int courseId, String courseName, String courseType) { this.courseId = courseId; this.courseName = courseName; this.courseType = courseType; } public int getCourseId() { return courseId; } public void setCourseId(int courseId) { this.courseId = courseId; } public String getCourseName() { return courseName; } public void setCourseName(String courseName) { this.courseName = courseName; } public String getCourseType() { return courseType; } public void setCourseType(String courseType) { this.courseType = courseType; } @Override public int hashCode() { return courseId; } @Override public boolean equals(Object obj) { if (obj != null || obj instanceof Course) { Course c = (Course) obj; if (courseId == c.courseId && courseName.equals(c.courseName) && courseType.equals(c.courseType)) return true; } return false; } @Override public String toString() { return "Course[" + courseId + "," + courseName + "," + courseType + "]"; } }