javaeye又出了一贴,是关于这个论题的:http://forum.iteye.com/viewtopic.php?t=5282
我只是把我的理解说一下:
为什么要把O/R映射得到的Object说为PO呢?对,是的,它是由Hibernate或者iBatis这些ORM中间件生成的持久对象,所以就是PO(废话!),不过你只要仔细回头一想想,也许PO不能只认为是PO,他应该是DO,也就是域对象,拥有对其个体数据进行操作的对象。
我们返回来去想想ORM出现的原因吧。在JDBC时代,我们头痛的是怎样把RDBMS中的记录读取出来映射成我们的域对象,也就是说,我们通过JDBC读取数据,然后生成DO,然后把DO用于整个业务逻辑层,DO代表着实体对象。直到Hibernate这样的中间件的出现,则彻底解决了上述所说的难题,也就是说ORM的任务是把RDBMS数据库中的记录转换成我们域对象DO。
这样问题就演进到DO是否应该提升到View层了。
有人说要用到DTO,也就是数据传输对象,也就是把DTO包装成没有逻辑意义的值对象提交到View层,从而把lazyloading的DO平面化,在大型的分布式J2EE项目中这样是很好的,可是面临一个问题,就是当业务逻辑层返回的是一个集(Set or List)怎么办?唉,没办法,转换它吧(仔细数一下,总共进行了3次循环,在JDBC底层一次,在业务逻辑层一次,在view层一次,而且每一次都是类似的转换一下而已,如果是分布式的,那么这样服务器受到的压力就不会很大)。所以在小型的不存在分布式Java Web中,一般都是把DTO上传到View层(减少一次循环)。
-------------------------
师兄跑去卖家俱去了,哈,一个程序员跑去卖家俱,有趣……
也难说,弄不好我比他还惨,还离奇呢!!
分享到:
相关推荐
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。 一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;...
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。 一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;...
Oracle PR 和PO 审批流程,审批层次建立
sap集成接口管理工具PI/PO开发和运维常见问题处理办法
SAP PO 流程集成平台介绍
PI-PO的SPECPI-PO的SPECPI-PO的SPEC
2.使用过程中如有问题,请联系deshuai.kong 3.功能 1.自动根据配置文件中的java 自动 转换为 C# po 2.有版本控制功能,工具会自动对比老文件和新文件,会自动添加“修改记录”,版本号自动加1(使用该功能,必须...
sap系统pr及PO的一些细节点控制控制
用BAPI_PO_CHANGE修改(ME23N)PO出貨日期的方法
PO Auto-Translate1.0.4558老朽痴拙汉化版(PO自动翻译器) 是一款免费的资源翻译工具,读取现有的PO / pot文件, 并可自动把选中的项目使用PO /pot设置指定的语言 通过GoogleTranslateAPI.dll得出翻译或反向翻译结果, ...
详细讲解如何统计PCS7中的PO(过程对象)
1、PO的基本概念 2、AS过程对象 3、OS 过程对象 4、计算示例
osm2po是读取开源数据库OpenStreetMap的数据osm.pbf 可以用来生成导入空间数据库的sql脚本。 提供高速的路径规划Java库,比pgRouting易用。 内置一个建议的地图服务器,用于测试 只需修改demo.bat,指向下载的osm...
1 文档详细举例让使用者更容易理解; 2 包含详细演示步骤截图; 3 从Enterprise Services Repository(ESR)到 Integration Directory(IR),并且有接口监控详细步骤;
EBS相关PO标准功能介绍以及系统设置等信息
SAP数据总线PO PI XI 官方文档BIT300_EN_Col54,已转html,可用谷歌打开直接翻译为中文阅读
今天我给大家带来了自制的mo、po文件相互转换工具, 主要特点是方便简洁。 =======================================================...把要转换的mo或po文件拖到bat上即可,会自动在文件原目录生成对应的另一种格式。
ERP PO中英文对照
LPC2294 BIOS 2294加载程序的代码,可通过网口USB口下载更新程序