Как создать POJO?
недавно я начал слышать о "POJOs" (простые старые объекты Java). Я погуглил его, но все еще не понимаю концепцию хорошо. Может ли кто-нибудь дать мне четкое описание POJO?
рассмотрим класс " Person "с переменными" id, name, address, salary " -- как создать 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;
}
}
9 ответов
POJO - это просто старый Java-боб с удаленными ограничениями. Java Beans должен отвечать следующим требованиям:
- конструктор no-arg по умолчанию
- следуйте соглашению Bean getFoo (или isFoo для booleans) и методам setFoo для изменяемого атрибута с именем foo; оставьте setFoo, если foo является неизменяемым.
- необходимо реализовать java.Ио.Serializable
POJO не санкционирует ни одного из них. Просто так называется ... говорит: объект, который компилируется под JDK, можно считать простым старым объектом Java. Нет сервера приложений, нет базовых классов, нет интерфейсов, необходимых для использования.
аббревиатура POJO была реакцией против EJB 2.0, которая требовала нескольких интерфейсов, расширенных базовых классов и множества методов для простых вещей. Некоторые люди, в том числе род Джонсон и Мартин Фаулер, восстали против сложности и искали способ реализовать решения корпоративного масштаба без необходимости писать компоненты EJB.
род Джонсон написал "J2EE без EJBs", написал Spring, повлиял на EJB достаточно, чтобы версия 3.1 выглядела очень похожей на Spring и Hibernate, и получил из нее сладкое IPO от VMWare.
вот пример, который вы можете обернуть вокруг своей головы:
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
- все переменные экземпляра должны быть частными
- не следует расширять предварительно определенные классы.
- не следует реализовывать заранее определенные интерфейсы.
- не должно содержать заранее определенных аннотаций.
- у него может не быть конструкторов аргументов
пример POJO
public class POJO {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
POJO-это Простой Старый Объект Java.
из статьи Википедии, которую я связал с:
в вычислительном программном обеспечении, POJO аббревиатура для простого старого объекта Java. Этот имя используется, чтобы подчеркнуть, что данный объект-это обычный Java-объект, не особый объект, и, в частности, не Предприятие JavaBean
ваш класс, похоже, уже является POJO.
POJO класс действует как Боб, который используется для установки и получения значения.
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;
}
}
когда вы ничего не делаете, чтобы сделать свой класс специально разработанным для работы с данной платформой, ORM или другой системой, которая нуждается в специальном классе, у вас есть простой старый объект Java или POJO.
сравнить старые под "старые данные" означает на языке C++ класс, который ничего не делает с структура не сделать (более или менее, не виртуальных членов, которые не тривиальные деструкторы и конструкторы не остановить, он будет рассматриваться Pod) и более новые (и более напрямую сравнимые) поко "простой старый объект CLR" в .Нет.
в основном возможны три варианта для отображения цели
- сериализовать
- XML mapping
- отображения объектов POJO.(Простых Объектов Java)
при использовании классов pojo разработчику легко сопоставить с базой данных. Классы POJO создаются для базы данных и в то же время классы value-objects создаются с помощью методов getter и setter, которые легко удерживают содержимое.
Итак, с целью отображение между java с базой данных, value-objects и POJO классов реализованы.
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 + "]";
}
}
по данным Мартин Фаулер
Как правило, POJO не связан с каким-либо ограничением, и любой объект Java можно назвать POJO, но есть некоторые направления. Четко определенный POJO должен следовать ниже указаниям.
- каждая переменная в POJO должна быть объявлена как частная.
- конструктор по умолчанию должен быть переопределен с открытым доступом.
- каждая переменная должна иметь свой метод Setter-Getter с public доступность.
- обычно POJO должен переопределять методы equals (), hashCode() и toString () объекта (но это не обязательно).
- переопределение метода compare () сопоставимого интерфейса, используемого для сортировки (предпочтительно, но не обязательно).
и согласно спецификации языка Java, POJO не должен иметь
- расширить предварительно заданные классы
- реализовать заранее заданные интерфейсы
- содержать предварительно заданные аннотации
однако разработчики и фреймворки описывают POJO по-прежнему требует использования заранее определенных аннотаций для реализации таких функций, как персистентность, декларативное управление транзакциями и т. д. Таким образом, идея заключается в том, что если объект был POJO до добавления каких-либо аннотаций, он вернется в статус POJO, если аннотации будут удалены, то его все еще можно считать POJO.
JavaBean-это особый вид POJO, который сериализуется, имеет конструктор без аргументов и разрешает доступ к свойствам с помощью методов getter и setter, которые следуют простому соглашению об именах.
подробнее о простой старый объект Java (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;
}
}