一、关于VO,BO,PO,DTO的简单理解
VO(Value Object)值对象
值对象:每一个字段与视图层所需要的字段对应 ,可以理解为vo里面的字段,和前端请求参数里面的字段相对应
DTO(Data Transfer Object)数据传输对象
数据传输对象: 用来转换从PO到VO,或者从VO到PO的中间对象
BO(Business Object)业务对象
业务对象:就是对PO对象的一种展示对象,比如PO是一条学生记录,这时候BO对象里面包含的字段就可以是学个人数
PO(Persistant Object)持久对象
持久对象:PO的字段和数据库数据库里面的字段意义对应
二、案例说明
现在有一个html页面,上面有个用户注册表单, 有stuName、stuAge、stuSex 3个字段
VO对象也有这三个字段对应视图上的3个字段:
private string stuName;
private string stuAge;
private string stuSex;
数据库中有个stu表,里面的字段有stuName、stuAge
所以PO对象对应的数据库表中也只有stuName、stuAge这两个字段
private string stuName;
private string stuAge;
现在有一个业务,需求是:只有“stuSex="男"的数据才能存入数据库”
这个时候,就要用到VO了
我们要先从页面上拿到VO,然后判断VO中的stuSex是不是等于“男”,如果条件成立,就把VO中的stuName和stuAge拿出来,放到DTO中,然后在把DTO中的stuName和stuAge原封不动地放入PO中,然后将PO传入数据库,这就是他们三个的区别
PS:VO对应页面上需要显示的数据,PO对应于数据库中存储的数据,DTO对应于除二者之外需要进行传递的数据,DTO只是VO到PO,或者PO到VO的中间过程。