Several java object (PO, VO, DAO, BO, POJO) explained that one, PO: persistant object persistent objects, can be seen as the facade of the database mapping java objects. The simplest PO is a corresponding database table in a record, multiple records can be set with the PO. PO should not contain any of the database operation.
2, VO: value object value object. Often used to transfer data between business layer, and the PO is just the same as with the stats. However, the abstract should be out of business objects, you can and tables correspond to or may not, depending on the business needs. Personally feel that the same DTO (data transfer object), in the web on the pass.
3, DAO: data access object data access object, this object is used to access the database. PO usually used in combination, DAO contains a variety of database access methods. Through its approach, with PO the database related operations.
4, BO: business object business objects, encapsulation of business logic java object, by calling the DAO method, combined with PO, VO conduct business operations.
5, POJO: plain ordinary java object simple random java object, I personally feel that it and the other is not a level thing, VO and PO should all belong to it.
The main difference between VO and PO are:
VO is an independent Java Object.
PO is a Hibernate into their physical container (Entity Map) object, which represents the database record corresponding to a particular Hibernate entities, PO changes in response to a transaction will be submitted to the actual database. VO is used as Data Transfer Object, the so-called DTO. In traditional MVC architecture, the Model layer in the PO, if allowed to be passed to other aspects. As the PO update will eventually be mapped to the actual database, if the PO at other levels (such as the View layer) changes have taken place, then the Model layer may cause unexpected damage. The VO is shown in the foreground, it will inevitably be used by the PO in attribute values that do not exist. For example PO may be an object, while the VO in it may be all the properties of this object. PO can only be used in the data layer, VO used in the business logic layer and presentation layer.