Подтвердить что ты не робот

Как создать POJO?

Недавно я начал слышать о "POJO" ( "Обычные старые объекты Java" ). Я googled это, но все еще не понимаю концепцию хорошо. Может ли кто-нибудь дать мне четкое описание POJO?

Рассмотрим класс "Человек" с переменными "id, name, address, pay" - как я могу создать 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;
    }
}
4b9b3361

Ответ 1

POJO - это просто обычная Java Bean с устраненными ограничениями. Java Beans должен отвечать следующим требованиям:

  • Конструктор no-arg по умолчанию
  • Следуйте за соглашением Bean метода getFoo (или isFoo for booleans) и setFoo для изменяемого атрибута с именем foo; оставьте значение setFoo, если foo является неизменным.
  • Необходимо реализовать java.io.Serializable

POJO не требует ни одного из них. Это как раз то, что имя говорит: объект, который компилируется под JDK, можно считать обычным старым Java-объектом. Нет сервера приложений, нет базовых классов, нет интерфейсов, необходимых для использования.

Акроним POJO был реакцией против EJB 2.0, которая требовала нескольких интерфейсов, расширенных базовых классов и множества методов просто для простых вещей. Некоторые из них, Род Джонсон и Мартин Фаулер среди них, восстали против сложности и искали способ реализовать решения масштаба предприятия без необходимости писать EJB.

Мартин Фаулер придумал новый акроним.

Род Джонсон написал "J2EE Without 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 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; } 
}

Ответ 2

POJO: - POJO - объект Java, не связанный каким-либо ограничением, кроме тех, которые были вызваны спецификацией языка Java.

Свойства POJO

  • Все свойства должны быть общедоступными и т.д.
  • Все переменные экземпляра должны быть закрытыми
  • Не следует расширять заданные классы.
  • Не следует выполнять заданные интерфейсы.
  • Не следует содержать предварительно заданные аннотации.
  • У него могут не быть конструкторы аргументов

Пример POJO

public class POJO {

    private String value;

    public String getValue() {
         return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

Ответ 3

POJO является Обычный старый объект Java.

Из статьи в Википедии я связан с:

В вычислительном программном обеспечении POJO является акроним для обычного объекта Java. имя используется, чтобы подчеркнуть, что данный объект - обычный Java-объект, а не особый объект, и в частности не Enterprise JavaBean

Ваш класс, похоже, уже является POJO.

Ответ 4

Класс 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;
    }
}

Ответ 5

Если вы не делаете ничего, чтобы ваш класс был специально разработан для работы с определенной структурой, ORM или другой системой, для которой нужен особый класс, у вас есть обычный объект Java Java или POJO.

Как это ни парадоксально, одна из причин, побуждающих этот термин, заключается в том, что люди избегали их в тех случаях, когда они были разумными, и некоторые люди пришли к выводу, что это произошло потому, что у них не было причудливого имени. Иронично, потому что ваш вопрос показывает, что подход работал.

Сравните старшие POD "Обычные старые данные", чтобы означать класс С++, который не делает ничего, что C-структура не могла бы сделать (более или менее, не виртуальные члены, которые не являются деструкторами или тривиальными конструкторами, не остановить его, считая POD), и более новый (и более непосредственно сопоставимый) POCO "Обычный объект CLR" в .NET.

Ответ 6

для целей сопоставления возможно в основном три варианта

  • сериализации
  • Отображение XML
  • Отображение POJO. (Обычные старые объекты Java)

При использовании классов pojo разработчику легко сопоставляться с базой данных. Классы POJO создаются для базы данных, и в то же время классы классов значений создаются с помощью методов getter и setter, которые легко удерживают содержимое.

Итак, для сопоставления между java с базой данных реализованы объекты value-objects и POJO.

Ответ 7

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 + "]";
    }
}

Ответ 8

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;
        }
    }