A project says that the system is divided into presentation layer, control layer, Logic layer, DAO layer and final database five layer architecture.

Source: Internet
Author: User

The presentation layer is what you see, like the current page you see now.
The control layer uploads your request from the page to the backend code
The logical layer is the code that processes your request
The DAO layer is the code that saves the data to the database
The database is the database, the storage of things used
The DAO layer is the code that accesses the database, and the database layer is the code that stores and manages the data.



o/R Mapping is an abbreviation for Object Relational Mapping (objects relational mapping). The popular point is that the object is bound to the relational database, and the object is used to represent the relational data. In the world of O/R mapping, there are two basic and important things to understand, namely Vo,po.
VO, value objects (Value object), PO, persistent objects (Persisent object), which are composed of a set of properties and properties of the get and set methods. Structurally, they are nothing different. But it is completely different from its meaning and nature.

1. Vo is created with the New keyword and collected by the GC.  
The PO is created when new data is added to the database, and the data in the database is deleted. And it can only survive in a database connection, and the disconnection is destroyed.  

2. Vo is a value object, the precise point is that it is a business object, is living in the business layer, is used by business logic, it is the purpose of survival is to provide a place for the data to survive.  
PO is stateful, and each property represents its current state. It is the object representation of the physical data. Using it, we can decouple our programs from physical data and simplify the transformation between the object data and the physical data.

3. Vo's properties are different depending on the current business, that is, each of its properties corresponds to the name of the data needed for the current business logic.  


po object needs to implement the serialization interface .

-------------------------------------------------

A PO is a persisted object that simply represents an object of the physical data entity and why does it need it? Because it simplifies our understanding and coupling to physical entities, simply speaking, you can simplify the programming of object data into physical data. What is VO? It is a value object, accurately speaking, it is a business object, is living in the business layer, is the business logic needs to understand, need to use, and then simply, it is the conceptual model of the transformation obtained.
First of all, the Po and Vo, their relationship should be independent of each other, a VO can be just a PO part, also can be a number of PO composition, the same can also be equated to a PO (of course I refer to their attributes). Because of this, the PO is independent, the data persistence layer is independent, it will not be interfered by any business. Because of this, the business logic layer is also independent, it will not be affected by the data persistence layer, the business layer is only concerned about the business logic processing, as to how to save how to read to others! However, another point, if we do not use the data persistence layer, or do not use Hibernate, then Po and VO can also be the same thing, although this is not good.

----------------------------------------------------Java's (Po,vo,to,bo,dao,pojo) explanation

PO (Persistant object) Persistent object
The concept that occurs at the O/R mapping, without the O/R mapping, does not exist. Usually the corresponding data model (database), itself also has some business logic processing. Can be seen as a Java object mapped to a table in the database. The simplest PO is a record in a table in the corresponding database, and multiple records can be used with a collection of PO. The PO should not contain any operations on the database.

VO (Value object) value objects
Typically used for data transfer between business tiers, as is the case with PO, which contains only data. But it should be abstracted out of the business object that can correspond to the table, or not, depending on the needs of the business. Personally feel the same DTO (data transfer object) that is passed on the web.

to (Transfer object), data transfer object
Objects that are transferred between different tie (relationships) in the application

BO (business object) service object
From the business model perspective, see the domain objects in the UML component Domain model. A Java object that encapsulates the business logic, by invoking the DAO method and combining Po,vo for business operations.

POJO (Plain ordinary Java object) simple, rule-free Java objects
Java objects that are purely traditional in meaning. In some object/relation mapping tools, the Persisent object that maintains database table records is a pure Java object that conforms to the Java Bean Specification and does not add other properties and methods. My understanding is the most basic Java Bean, only attribute fields and setter and getter Method!.

DAO (data Access object) Access objects
is a sun's standard Java EE design pattern, which has an interface that is DAO, which has negative persistence layer operations. Provides interfaces for the business layer. This object is used to access the database. Usually used in conjunction with PO, DAO contains various methods of operation of the database. Through its method, combine the PO to carry on the related operation to the database. Sandwiched between business logic and database resources. With VO, provide database crud operations ...

O/R Mapper object/relationship Mapping
After defining all the mapping, this O/R mapper can help us do a lot of work. With these mappings, this O/R mapper can generate all the SQL statements about the object save, Delete, read, and we no longer need to write so many lines of DAL code.

Entity model (solid mode)
DAL (data access Layer)
Idal (interface layer)
Dalfactory (class factory)
BLL (business logic Layer)
BOF business Object Framework service objects Frame
SOA Service Orient Architecture Services-oriented design
EMF Eclipse Model Framework Eclipse Modeling Framework

----------------------------------------

PO: Full name is
Persistant Object Persistent Objects
The most vivid understanding is that a PO is a record in the database.
The advantage is that a record can be processed as an object and can be easily converted to other objects.

BO: The full name is
Business object: Operational objects
The main role is to encapsulate the business logic as an object. This object can include one or more other objects.
such as a resume, education experience, work experience, social relations and so on.
We can have an education experience corresponding to a PO, work experience corresponding to a PO, social relations corresponding to a PO.
Create a CV-based Bo object to process resumes, each BO containing these po.
When we handle business logic like this, we can deal with Bo.

VO:
Value Object Value objects
ViewObject Presentation Layer Objects
The data object that the main interface displays. For a Web page, or an interface for SWT and swing, use a Vo object to correspond to the value of the entire interface.

Dto:
Data Transfer Object Data transfer objects
It is mainly used for remote calls, etc. where large quantities of objects need to be transferred.
For example, if we have 100 fields in a table, then the corresponding PO has 100 attributes.
But we just show 10 fields on the interface,
The client uses the Web service to get the data, and there is no need to pass the entire PO object to the client.
At this point we can pass the result to the client with a DTO with only these 10 attributes, and this will not expose the service-side table structure. After the client is reached, if the interface is displayed with this object, then its identity will be converted to VO.

Pojo:
Plain ordinary Java object simple Java objects
Personal feeling Pojo is the most common and changeable object, is an intermediate object, is also our most often dealing with objects.

A Pojo is a PO after persistence
It is the DTO that passes and passes directly through it.
Directly used to correspond to the presentation layer is VO

DAO:
Data Access Object Information
This everyone is most familiar with, and the above several o the biggest difference, basic without the possibility and necessity of mutual transformation.
Primarily used to encapsulate access to a database. It can be pojo to the PO, with PO assembled VO, DTO

-----------------------------------------------------------------

The Po:persistant object is persisted as a Java object that is mapped to a table in the database. The simplest PO is a record in a table in the corresponding database, and multiple records can be used with a collection of PO. The PO should not contain any operations on the database.


The Vo:value object value. Typically used for data transfer between business tiers, as is the case with PO, which contains only data. But it should be abstracted out of the business object that can correspond to the table, or not, depending on the needs of the business. Personally feel the same DTO (data transfer object) that is passed on the web.


Dao:data Access object that is used to access the database. Usually used in conjunction with PO, DAO contains various methods of operation of the database. Through its method, combine the PO to carry on the related operation to the database.


Bo:business object, which encapsulates the Java object of the business logic, invokes the DAO method and combines po,vo for business operations;


Pojo:plain ordinary Java object Simple, non-regular Java objects, I personally think it and other not a level of things, Vo and Po should belong to it.

---------------------------------------------
VO: Value object, view Object
PO: Persisted object
QO: Query Object
DAO: Data Access Object
DTO: Data Transfer object
----------------------------------------
Actionform in struts is a vo;
The entity Bean in Hibernate is a PO, also called Pojo; The criteria in
Hibernate is equivalent to a qo;
When using hibernate, we define some methods of querying, which are written in interfaces and can have different implementation classes. And this interface can be said to be a DAO.
personally think Qo and DTOs are similar.
----------------------------------------
Po or bo, the closest layer to the database, is the O in Orm, which is basically a property of the database field corresponding to Bo, for synchronization and security considerations, It is best to call the DAO or service only, not the Packcode,backingbean, or the Bo tune.
DAO, the data access layer, the objects in the Vo,backingbean can be put into .... The
DTO, rarely used, is basically put into DAO, just to play the role of transition.
QO, is to put some with the persistent query operation with the statement into the.
The basic elements and methods used in the VO,V layer are placed therein. If you want to call Bo, do the Bo conversion vo,vo convert Bo operation. Vo's advantage is that its page element attributes more than Bo, can play a very good role ....
-----------------------------------------
Upstairs is wrong, PO is a persistent object. Bo=business object-business object. The
Po can strictly correspond to a database table, and a single PO is mapped to a table. The
Bo is the business logic object, and my understanding is that it is full of business logic and is useful in complex business logic applications.
Vo:value object, View object,
PO: Persistent object
QO: Query Object
DAO: Data Access Object-also DAO mode
DTO: Data Transfer Object-also DTO mode

One project says the system is divided into presentation, control, Logic, DAO, and final database five-tier architecture

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.