如何创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必须满足以下要求:
- 默认的无参数构造函数
- 按照getFoo(或布尔值为isFoo)的Bean约定和setFoo方法来获取名为foo的可变属性; 如果foo是不可改变的,请closuressetFoo。
- 必须实现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的属性
- 所有属性必须是公共setter和getter方法
- 所有实例variables都应该是私有的
- 不应该扩展预先指定的类。
- 不应该实现预先指定的接口。
- 不应该包含预先指定的注释。
- 它可能没有任何参数构造函数
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对象(POJO)。
具有讽刺意味的是,这个词的理由之一是人们在合理的情况下避开他们,有些人认为这是因为他们没有一个特别的名字。 具有讽刺意味的是,你的问题表明这种方法奏效。
比较旧的POD“普通旧数据”意味着一个C ++类,它不会做任何C结构无法做的事情(或多或less,非虚构成员不是析构函数或简单的构造函数不会阻止它被认为是POD),以及.NET中较新的(和更直接相似的)POCO“Plain Old CLR Object”。
主要有三种选项可能用于测绘目的
- 连载
- XML映射
- 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 + "]"; } }