java中vo与po的转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中vo与po的转换相关的知识,希望对你有一定的参考价值。
首先想问在DAO中进行增删查改只能是针对po?
前台接收的表单信息封装在vo里
通过action调用service处理vo
那vo与po在哪一层进行转换最合适?
有源代码的最好。谢谢!
不OO也不代表不是面向对象
面向对象也不一定非得OO
你可以把PO当VO用 因为一些小的 不容易改变的程序里 直接用PO还是很省事的
没有标准的界限 规范是规范 但不要阻碍自己的想法
不过我还是把它们分开的 说来说去也就是为了松耦合
也有VO到BO BO到PO
都不一样
在DAO中我想应该是针对PO的 不然你不就相当于设定了全局变量么
这样会让它的重用率变成0
具体的条条框框也没细研究过
共同学习 答案补充 我的框架是做了一个DAO接口 之后实现的时候调用PO 继承接口
IDAO:
public interface IBjglsxDao extends BaseIface
//按Glsxlxh查询
public abstract Object queryForGlsxlxh(Object object);
DAO:
public class BjglsxDao extends BaseDao implements IBjglsxDao
public BjglsxDao(DaoManager arg0)
super(arg0);
// TODO Auto-generated constructor stub
public Object queryForGlsxlxh(Object object)
// TODO Auto-generated method stub
return queryForList("jxgl_bjglsx_selectForGlsxlxhForList",object);
参考技术A 我是在DAO中转换,因为我的框架定义为只有DAO中能操作po,其他层次只能传递po,而不能操作po。
BeanUtils.copyProperties(Object a,Object b); 参考技术B DAO中转换 通常为合适的
现在基本节省了VO这一步。基本上都是DAO-PO VO 和BO现在已经基本上消失了
java术语(PO/POJO/VO/BO/DAO/DTO)
PO(persistant object) 持久对象
在o/r映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数据库的操作.
VO(value object) 值对象
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递.
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操作...
DTO (Data Transfer Object)数据传输对象
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO
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建模框架
以上是关于java中vo与po的转换的主要内容,如果未能解决你的问题,请参考以下文章