目录
一.实体之间的关系
1.实体场景
2.作用
3.下面以一个时序图建立简单模型来描述上述对象在三层架构应用中的位置
二.实际应用场景
1.转换类场景:
2.创建流程
VO对应于页面上需要显示的数据(表单)
DO对应于数据库中存储的数据(数据表)
DTO对应于除二者之外需要进行传递的数据
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,泛指用于展示层与服务层之间的数据传输对象。
DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。
PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。
用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO。
展示层把VO转换为服务层对应方法所要求的DTO,传送给服务层。
服务层首先根据DTO的数据构造(或重建)一个DO,调用DO的业务方法完成具体业务。
服务层把DO转换为持久层对应的PO(可以使用ORM工具,也可以不用),调用持久层的持久化方法,把PO传递给它,完成持久化操作。
今天主要讲解dto(数据传输对象)之间的实体转换
将一个对象的值赋值给另一个对象时(属性名和流转数据相同),就需要用到我们的转换类了.
创建一个转换接口
@Mapper
public interface UserConvert {UserConvert INSTANCE= Mapper(UserConvert.class);User UserDtoToEntity(BzhdDataManageDto bzhdDataManageDto);//dto-->entity(数据流向)
}
业务层代码
public boolean saveUserManage(UserDto userDto) {User user= UserConvert.INSTANCE.UserDtoToEntity(userDto);
}
如若属性名不同,则应该如何转换:
具体步骤(针对属性名不相同):
@Mappings({@Mapping(source = "name", target = "userName"),@Mapping(source = "id", target = "userId"),@Mapping(target = "age", ignore = true)})
source里面填写的是要转换的属性名,,target里面填的的是被转换后的属性名.ignore指的是忽略
本文发布于:2024-01-29 05:44:49,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170647829013119.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |