实体entity、JavaBean、Model、POJO、domain的区别
实体entity、JavaBean、Model、POJO、domain的区别
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作为支持业务逻辑的协助类。
domain:domain这个包国外很多项目经常用到,字面意思是域的意思。
POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便 程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。
- 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.
---------------------
最新文章
- 分离与继承的思想实现图片上传后的预览功能:ImageUploadView
- C# 使用SqlBulkCopy类批量复制大数据
- 通过ajax 后台传递的 区域id 选中ztree的节点 并展开节点
- php-4种排序
- Spring学习总结(二)——静态代理、JDK与CGLIB动态代理、AOP+IoC
- 【随笔】ssh登录时如何直接在参数中加入登录密码
- 怎么学好python?
- 强连通分量(LRJ训练指南)
- The required Server component failed to start so Tomcat is unable to start解决之一
- PHP无限级分类生成树实例代码
- js 时间字符串转化为时间
- Java多线程同步问题:一个小Demo完全搞懂
- Visual Studio 2017 和 Visual Assist X 番茄助手的安装教程
- 无界鼠标 Mouse Without Borders
- python jieba 库分词结合Wordcloud词云统计
- android TextView字体设置最少占多少行. 及其 Java String 字符串操作 . .
- 学习测试框架Mocha
- SpringBoot 配置文件详解
- 2013年第四届蓝桥杯JavaB组省赛试题解析
- Statement执行静态SQL语句
热门文章
- 大数据学习路线分享-Hbase shell的基本操作完整流程
- linux下nginx整合php
- Docker学习笔记之docker-save vs docker-export vs docker-commit
- JDK源码之HashSet
- Fiddler(三)Fiddler设置手机抓包
- P2473 [SCOI2008]奖励关(期望)
- P3203 [HNOI2010]弹飞绵羊(LCT)
- 一种基于 Numpy 的 TF-IDF 实现报告
- indexOf()/equals/contains
- 搭建ldap服务器及web管理服务--phpldapadmin