java对象和json的区别POJO 和JavaBean是我们常见的两个关键字 , 一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类 , 具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多 , Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲 , 任何一个 Java 类都可以是一个 Bean。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性 。Java Bean 是不能被跨进程访问的
JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用 , 这个扳子也提供多种功能(你可以拿这个扳子扳、锤、撬等等) , 而这个扳子就是一个组件 。
一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO 。
POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象 , 而不是一个特殊的对象 。2005年11月时,“POJO”主要用来指代那些没用遵从特定的Java对象模型,约定或框架如EJB的Java对象.理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范) 。例如一个POJO不应该是
扩展预定的类,如 public class Foo extends javax.servlet.http.HttpServlet { ...
实现预定的接口,如 public class Bar implements javax.ejb.EntityBean { ...
包含预定的标注 , 如 @javax.ejb.Entity public class Baz{ ...
然后,因为技术上的困难及其他原因,许多兼容POJO风格的软件产品或框架事实上仍然要求使用预定的标注 , 譬如用于更方便的持久化 。JavaBean 是一种JAVA语言写成的可重用组件 。它的方法命名,构造及行为必须符合特定的约定:
这个类必须有一个公共的缺省构造函数 。
这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范 。
这个类应是可序列化的 。
因为这些要求主要是靠约定而不是靠实现接口 , 所以许多开发者把JavaBean看作遵从特定命名约定的POJO 。简而言之,当一个Pojo可序列化 , 有一个无参的构造函数,使用getter和setter方法来访问属性时,他就是一个JavaBean 。
1.对于java bean,就是一个java模型组件,他为使用java类提供了一种标准的格式,在用户程序和可视化管理工具中可以自动获得这种具有标准格式的类的信息,并能够创建和管理这些类 。java bean 可以使应用程序更加面向对象,可以把数据封装起来,把应用的业务逻辑和显示逻辑分离开 , 降低了开发的复杂程度和维护成本! JavaBean 是一种JAVA语言写成的可重用组件 。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器 。JavaBeans 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性 。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性 。
从编程的角度,也就是最基本的实现了get跟set方法的类 。
2.Enterprise Bean,也就是Enterprise JavaBean(EJB),是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准 。其特点包括网络服务支持和核心开发工具(SDK) 。在 J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean , 是Java的核心代码,分别是会话 Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean) 。1.Session Bean用于实现业务逻辑,它可以是有状态的,也可以是无状态的 。每当客户端请求时,容器就会选择一个Session Bean来为客户端服务 。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问 。这个类一般用单例模式来实现,因为每次连接都需要用到它 。2.Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个 Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步 。Java Persistence 1.0规范中的entity bean仅作为普通Java对象(POJO)来使用,并且是映射到关系数据库表的 。与其他类型的EJB不同,entity bean可以被分配,序列化,并像任何其他POJO那样通过网络被发送出去 。3.MessageDriven Bean是EJB2.0中引入的新的企业Bean , 它基于JMS消息 , 只能接收客户端发送的JMS消息然后处理 。MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回 , MDB将异步处理客户请求 。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果 。三、Enterprise Bean 与 JavaBean的区别 最 初,JavaBean的目的是为了将可以重复使用的软件代码打包标准 。特别是用与帮助厂家开发在综合开发环境(IDE)下使用的java软件部件 。这些包 括如Grid控件,用户可以将该部件拖放到开发环境中 。从此,JavaBean就可以扩展为一个java web 应用的标准部件,并且JavaBean部件框架已经扩展为企业版的 Bean(EJB) 。JavaBean 和 Server Bean(通常称为 Enterprise JavaBean (EJB))有一些基本相同之处 。它们都是用一组特性创建,以执行其特定任务的对象或组件 。它们还有从当前所驻留服务器上的容器获得其它特性的能力 。这使 得 bean 的行为根据特定任务和所在环境的不同而有所不同 。JavaBean 是使用 java.beans 包开发的,它是 Java 2 标准版的一部分 。JavaBean 是一台机器上同一个地址空间中运行的组件 。JavaBean 是进程内组件 。Enterprise Bean 是使用 javax.ejb 包开发的,它是标准 JDK 的扩展 , 是 Java 2 Enterprise Edition 的一部分 。Enterprise Bean 是在多台机器上跨几个地址空间运行的组件 。因此 Enterprise Bean 是进程间组件 。JavaBean 通常用作 GUI 窗口小部件,而 Enterprise Bean 则用作分布式商业对象. 四、POJO一个正规的Java对象(不是JavaBean , EntityBean等),也不担当任何的特殊的角色,也不实现任何Java框架指定的接口 。POJO是一个简单的、正规Java对象,它包含业务逻辑处理或持久化逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口 。POJO 应该不是我们开始认为的JavaBean,当然更不是EJB,它不应该依赖于框架即继承或实现某些框架类或接口 。例如:Struts1中的Action和 ActionForm当然不属于POJO了,而在Struts2中的Action由于可以不继承任何的接口,所以在这种情况下Action是POJO,但 是Struts2中的Action也可以继承ActionSupport类就不再属于POJO了 。POJO里面是可以包含业务逻辑处理和持久化逻辑,也可 以包含类似与JavaBean属性和对属性访问的set和get方法的 。在百度百科上的解释是:简 单的Java对象(Plain Ordinary Java Objects)实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法 。

文章插图
什么是pojo类型简单的Java对象(Plain Old Java Objects)实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法 。

文章插图
po和puo怎么区别POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称 。
pojo 是Plain Old Java Object的缩写,就是javabean 。vo是view object的缩写,就是用于页面显示的javabean 。vo就是pojo 。只是通途上的用于携带页面显示信息 。
使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法 。

文章插图
dto和pojo的区别ational Mapping(对象关系映射)的缩写 。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据 。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解 , 即VO,PO 。
VO,值对象(Value Object),PO,持久对象(Persisent Object),它们是由一组属性和属性的get和set方法组成 。从结构上看,它们并没有什么不同的地方 。但从其意义和本质上来看是完全不同的 。
1.VO是用new关键字创建 , 由GC回收的 。
PO则是向数据库中添加新数据时创建,删除数据库中数据时削除的 。并且它只能存活在一个数据库连接中,断开连接即被销毁 。
2.VO是值对象 , 精确点讲它是业务对象,是存活在业务层的 , 是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方 。
PO则是有状态的,每个属性代表其当前的状态 。它是物理数据的对象表示 。使用它,可以使我们的程序与物理数据解耦,并且可以简化对象数据与物理数据之间的转换 。
3.VO的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称 。
PO的属性是跟数据库表的字段一一对应的 。
PO对象需要实现序列化接口 。
-------------------------------------------------
PO是持久化对象,它只是将物理数据实体的一种对象表示,为什么需要它?因为它可以简化我们对于物理实体的了解和耦合 , 简单地讲,可以简化对象的数据转换为物理数据的编程 。VO是什么?它是值对象,准确地讲,它是业务对象,是生活在业务层的,是业务逻辑需要了解,需要使用的,再简单地讲 , 它是概念模型转换得到的 。
首先说PO和VO吧,它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成 , 同样也可以等同于一个PO(当然我是指他们的属性) 。正因为这样,PO独立出来,数据持久层也就独立出来了,它不会受到任何业务的干涉 。又正因为这样,业务逻辑层也独立开来 , 它不会受到数据持久层的影响,业务层关心的只是业务逻辑的处理,至于怎么存怎么读交给别人吧!不过 , 另外一点,如果我们没有使用数据持久层,或者说没有使用hibernate , 那么PO和VO也可以是同一个东西 , 虽然这并不好 。
----------------------------------------------------
java的(PO,VO,TO,BO,DAO,POJO)解释
PO(persistant object) 持久对象
在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了 。通常对应数据模型(数据库),本身还有部分业务逻辑的处理 。可以看成是与数据库中的表相映射的java对象 。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合 。PO中应该不包含任何对数据库的操作 。
VO(value object) 值对象
通常用于业务层之间的数据传递 , 和PO一样也是仅仅包含数据而已 。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递 。
TO(Transfer Object),数据传输对象
在应用程序不同tie(关系)之间传输的对象
BO(business object) 业务对象
从业务模型的角度看,见UML元件领域模型中的领域对象 。封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作 。
POJO(plain ordinary java object) 简单无规则java对象
纯的传统意义的java对象 。就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法 。我的理解就是最基本的Java Bean,只有属性字段及setter和getter方法! 。
DAO(data access object) 数据访问对象
是一个sun的一个标准j2ee设计模式,这个模式中有个接口就是DAO,它负持久层的操作 。为业务层提供接口 。此对象用于访问数据库 。通常和PO结合使用,DAO中包含了各种数据库的操作方法 。通过它的方法,结合PO对数据库进行相关的操作 。夹在业务逻辑与数据库资源中间 。配合VO, 提供数据库的CRUD操作...
O/R Mapper 对象/关系 映射
定义好所有的mapping之后,这个O/R Mapper可以帮我们做很多的工作 。通过这些mappings,这个O/R Mapper可以生成所有的关于对象保存,删除,读取的SQL语句,我们不再需要写那么多行的DAL代码了 。
实体Model(实体模式)
DAL(数据访问层)
IDAL(接口层)
DALFactory(类工厂)
BLL(业务逻辑层)
BOF Business Object Framework 业务对象框架
SOA Service Orient Architecture 面向服务的设计
EMF Eclipse Model Framework Eclipse建模框架
----------------------------------------
PO:全称是
persistant object持久对象
最形象的理解就是一个PO就是数据库中的一条记录 。
好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象 。
BO:全称是
business object:业务对象
主要作用是把业务逻辑封装为一个对象 。这个对象可以包括一个或多个其它的对象 。
比如一个简历,有教育经历、工作经历、社会关系等等 。
我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO 。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO 。
这样处理业务逻辑时,我们就可以针对BO去处理 。
VO :
value object值对象
ViewObject表现层对象
主要对应界面显示的数据对象 。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值 。
DTO :
Data Transfer Object数据传输对象
主要用于远程调用等需要大量传输对象的地方 。
比如我们一张表有100个字段 , 那么对应的PO就有100个属性 。
但是我们界面上只要显示10个字段 ,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端 ,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后 , 如果用这个对象来对应界面显示,那此时它的身份就转为VO
POJO :
plain ordinary java object 简单java对象
个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象 。
一个POJO持久化以后就是PO
直接用它传递、传递过程中就是DTO
直接用来对应表示层就是VO
DAO:
data access object数据访问对象
这个大家最熟悉 , 和上面几个O区别最大,基本没有互相转化的可能性和必要.
主要用来封装对数据库的访问 。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO
-----------------------------------------------------------------
PO:persistant object持久对象,可以看成是与数据库中的表相映射的java对象 。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合 。PO中应该不包含任何对数据库的操作.
VO:value object值对象 。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已 。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递.
DAO:data access object数据访问对象,此对象用于访问数据库 。通常和PO结合使用,DAO中包含了各种数据库的操作方法 。通过它的方法,结合PO对数据库进行相关的操作.
BO:business object业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作;
POJO:plain ordinary java object 简单无规则java对象,我个人觉得它和其他不是一个层面上的东西,VO和PO应该都属于它.
---------------------------------------------
VO:值对象、视图对象
PO:持久对象
QO:查询对象
DAO:数据访问对象
DTO:数据传输对象
----------------------------------------
struts 里的 ActionForm 就是个VO;
hibernate里的 实体bean就是个PO,也叫POJO;
hibernate里的Criteria 就相当于一个QO;
在使用hibernate的时候我们会定义一些查询的方法,这些方法写在接口里,可以有不同的实现类.而这个接口就可以说是个DAO.
个人认为QO和DTO差不多.
----------------------------------------
PO或叫BO,与数据库最接近的一层,是ORM中的O,基本上是数据库字段对应BO中的一个属性,为了同步与安全性考虑,最好只给DAO或者Service调用,而不要用packcode,backingBean,或者BO调 。
DAO , 数据访问层,把VO,backingBean中的对象可以放入 。。。。
DTO,很少用 , 基本放入到DAO中,只是起到过渡的作用 。
QO,是把一些与持久性查询操作与语句放入 。。
VO,V层中用到的基本元素与方法等放其中 。如果要其调用BO , 则要做BO转换VO,VO转换BO操作 。VO的好处是其页面的元素属性多于BO,可起到很好的作用 。。。。
-----------------------------------------
楼上的不对吧,PO是持久化对象 。BO=business object—业务对象 。
PO可以严格对应数据库表 , 一张表对映一个PO 。
BO则是业务逻辑处理对象,我的理解是它装满了业务逻辑的处理 , 在业务逻辑复杂的应用中有用 。
VO:value object值对象、view object视图对象
PO:持久对象
QO:查询对象
DAO:数据访问对象——同时还有DAO模式
DTO:数据传输对象——同时还有DTO模式

文章插图
【pojo是什么,java对象和json的区别】
- 门不离五床不离七是什么意思,什么是凳不离三门不离五...
- 有心力不足的意思是什么,心有余而力不足的意思是什么意思
- 四流一致指的是什么意思,四流一致指的是什么意思
- 安利是什么梗,安利公司是正规公司
- 皮蛋配方及配比,皮蛋的制作方法及配方比例是什么
- 安全网络大赛是什么东西,网络安全大赛是电竞
- 厕纸是什么垃圾分类,厕纸属于什么垃圾 厕纸是干垃圾还是湿垃圾
- 什么叫重结晶法,化学中的重结晶指的是什么
- 电压24v是什么意思,电动车电池电压的正负公差
- 奥利给是什么意思什么梗,奥利给是什么意思
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
