开发中model,entity和pojo的区别

一、Bean

对于Bean而言,我的理解是只要是Java的类的就可以称为一个Bean,更用在Spring上,被Spring管理的对象就可以将其称作为Bean。

它不仅仅可以包括对象的属性以及get,set方法,还可以有具体的业务逻辑。

二、Entity

这个最容易理解,其特点是:数据表对应到实体类的映射

三、Model

Model是MVC中一个概念,可能不和Entity一一对应,因为展示在View层中数据可能是一个Entity的精简,也可能是多个Entity的组合。一句话概括:Model是一个高度优化组合或者精简后的一个用于在View层展示数据的对象。

四、POJO

简单Java对象,貌似没有经常提到或作为类的后缀存在,难道是因为其名字太长?

其特点是:除了属性和get、set方法外不包含具体的业务逻辑方法,这个和上文表述的Model很相像,和Entity区别在于没有和数据表中字段一一对应。

总结:实际上entity与pojo与javabean都是JAVA对象,可能有的地方叫法不同,实际上功能都是一样的,唯一不同是用于范围不同,请看下面详细分析。
Java Bean、POJO、 Entity、 VO , 其实都是java 对象,只不过用于不同场合罢了。 
按照 Spring MVC 分层结构:
JavaBean:    表示层 (Presentation Layer)
Entity:    业务层 (Service layer)

Dao:   数据访问层 (data access layer)。

Entity接近原始数据,Model接近业务对象~
Entity:是专用于EF的对数据库表的操作,
Model:是为页面提供数据和数据校验的,所以两者可以并存
POJO:POJO是Plain OrdinaryJava Object的缩写不错,但是它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便 程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。POJO类 也给我们
今天突然也在这个问题上迷惑了。上网搜搜,算是明白了一些,姑且记下来,无论对错:
  JavaBean: 先说JavaBean,JavaBean更多的是一种规范,也即包含一组set和get方法的Java对象。
  POJO: 普通的Java对象,对于属性一般实现了JavaBean的标准,另外还可以包含一些简单的业务逻辑(方法)。
  PO: POJO在持久层的体现,对POJO持久化后就成了PO。PO更多的是跟数据库设计层面相关,一般PO与数据表对应,一个PO就是对应数据表的一条记录。
  DAO: PO持久化到数据库是要进行相关的数据库操作的(CRUQ),这些对数据库操作的方法会统一放到一个Java对象中,这就是DAO。
  BO: POJO在业务层的体现,对于业务操作来说,更多的是从业务上来包装对象,如一个User的BO,可能包括name, age, sex, privilege, group等,这些属性在数据库中可能会在多张表中,因为每一张表对应一个PO,而我们的BO需要这些PO组合起来(或说重新拼装)才能成为业务上的一个完整对象。
  VO(Value Object/View Object): POJO在表现层的体现。 当我们处理完数据时,需要展现时,这时传递到表现层的POJO就成了VO。它就是为了展现数据时用的。
  DTO(Data Transfer Object): POJO在系统间传递时。当我们需要在两个系统间传递数据时,一种方式就是将POJO序列化后传递,这个传递状态的POJO就是DTO。
  EJB(Enterprise JavaBean): 我认为它是一组"功能"JavaBean的集合。上面说了JavaBean是实现了一种规范的Java对象。这里说EJB是一组JavaBean,的意思是这一组JavaBean组合起来实现了某个企业组的业务逻辑。这里的一组JavaBean不是乱组合的,它们要满足能实现某项业务功能的搭配。找个比方,对于一身穿着来说,包括一顶帽子,一件衣服,一条裤子,两只鞋。这穿着就是EJB,其它的就是一个JavaBean。。。。后续。。。。

原文链接:

http://blog.sina.com.cn/s/blog_aed19c1f0102wp1q.html

https://blog.csdn.net/a909422229/java/article/details/70792203

原文地址:https://www.cnblogs.com/zmwy/p/12591569.html

时间: 2024-10-24 11:36:53

开发中model,entity和pojo的区别的相关文章

Android开发中.toString()和String.valueOf()的区别

其实,很多时候效果是差不多的 但是,有的时候用.toString()会报错,而用String.valueOf()就不会报错 这说明两者是有差别的,在细微之处~ .toString()和String.valueOf()的区别在哪呢? jdk的文档中对.toString()有说明: String.valueOf(Object   o)  if the argument is null, then a string equal to "null ";  otherwise,  the val

iOS开发中 new与alloc/init的区别 及 [NSArray array] 和 [[NSArray alloc]init] 及 self. 和 _ 的区别

项目过程中,想到这几个概念的区别有些模糊,于是纵观各种资料,来篇博文为自己记录下,也为小伙伴们说说我的理解. [className new] 和 [[className alloc] init] 的区别 1.在实际开发中很少会用到new,一般创建对象咱们看到的全是[[className alloc] init] 但是并不意味着你不会接触到new,在一些代码中还是会看到[[className alloc] init], 还有去面试的时候,也很可能被问到这个问题. 2.那么,他们两者之间到底有什么区

在ios开发中nil和NUll和Nilde区别————和如何判断连个对象的关系

nil表示一个对象指针为空,针对对象 >示例代码: NSString *someString = nil; NSURL *someURL = nil; id someObject = nil; if (anotherObject == nil) // do something Nil表示一个类指针为空,针对类 >示例代码: Class someClass = Nil; Class anotherClass = [NSString class]; NULL表示基本数据类型为空,基本类型 >

web开发中,post与get的区别

区别: 1.Get是从服务器上获取数据,Post是向服务器传送数据. 2.Get是把参数数据队列加到提交表单的Action属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.Post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML header内一起传送到Action属性所指向的URL地址.用户看不到这个过程. 3.对于Get方式,服务器端用Request QueryString获取变量的值,对于Post方式,服务器端用Requst Form获取提交的数据.

Java网页开发中model实现Serializable接口的原因

Object serialization的定义:Object serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象. serialization不但可以在本机做,而且可以经由网络操作(RMI).这个好处是很大的----因为它自动屏蔽了操作系统的差异,字节顺序(用Unix下的c开发过网络编程的人应该知道这个概念)等.比如,在Window平台生成一个对象并序列化之,然后通过网络传到一台Unix机器上,然后可以

web开发中请求转发和重定向的区别

请求转发流程及定义 重定向流程及定义

Asp.Net MVC4开发二: Entity Framework在Asp.Net MVC4中的应用

ORM作为一种数据库访问机制已广泛地应用于各种项目当中,在.Net开发中,应用比较广泛的ORM框架大致有下面几个: 官方支持的有:Linq to SQL,Entity Framework.三方的有:NHibernate.前面介绍过Linq to SQL的应用,这篇介绍一下Entity Framework在Asp.Net MVC4中的应用. 首先用Visual Studio(2012或2013,其它版本需要安装Asp.Net MVC4)创建一个Asp.Net MVC4的项目,项目创建完成后会发现E

ios 开发中 动态库 与静态库的区别

使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源 3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的. 从1可以得出,将整个应用程序分模块,团队合作,进行分工,影响比较小. 等其他好处, 从2可以看出,其实动态库应该叫共享库,那么从这个意义上来说,苹果禁止iOS开

JavaWeb开发中form、ajax提交数据Model转化

JavaWeb开发中form.ajax提交数据Model转化 问题 最近学习MongoDB数据库,作为java开发的我,当然需要做个小的web程序来测试一番了.在html中我采取ajax提交方式,因为我要模拟各种类型的数据,基础数据类型.数组.对象等.然而,最终发现了个不同的地方:Form和ajax提交数据,在HttpServletRequest中尽然参数名有所不同. 数据类型 form ajax 基础数据 para=value para=value 数组 para[]={"aaa",