三分钟掌握POJO及其转换——PO、DO、DTO、VO​mp.weixin.qq.com

概念

DTO(Data Transfer Object)

数据传输对象,原先是为分布式提供粗粒度的数据实体,减少调用次数来提升性能和降低网络压力。

VO(view object)可视层对象,用于给前端显示的对象。(只传递有需要的参数以保障数据安全)

DO(Domain Object):

领域对象,一般和数据中的表结构对应。

PO(Persistent Object):持久化对象,是一种 o/r 映射关系,可以看成是数据库表到java对象的映射。

概括

DTO:前端给后端传递的数据

VO:后端给前端传递的数据

DO:数据库表结构

PO:数据库表结构到JAVA的映射类

一般我们使用Mybatis建的类为PO,控制器接受到前端发来的参数为DTO,给前端发送的安全的数据为VO。如果数据类不做映射处理关系时PO=DO

如何转换

maven导入net.sf.dozer(最新jar包可自行百度)

<!-- https://mvnrepository.com/artifact/net.sf.dozer/dozer -->
<dependency><groupId>net.sf.dozer</groupId><artifactId>dozer</artifactId><version>5.5.1</version>
</dependency>

使用方式如下

//(如果属性名不一致,需要注入映射配置文件的Bean。)
DozerBeanMapper mapper = new DozerBeanMapper();
B b = new B();
A a = mapper.map(b,A.class);

DO与PO的区别

DO为数据库表结构完全一致的对象

PO是数据库表映射后的对象

如:一个实体类里有订单表信息也有库存表信息

存储关联后的所有数据为PO。(一对多)

如:业务表中属性特别多,但只想取其中的几列查询

取出所需的数据为PO。(多对一)

如:表字段名称与代码使用不一致

映射成PO。

java vo转map_三分钟掌握POJO及其转换——PO、DO、DTO、VO相关推荐

  1. java和python的比较-如何对比Python和Java,只需三分钟告诉你!

    原标题:如何对比Python和Java,只需三分钟告诉你! Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手.但是对于初学者来说,非常困惑,因为时间和精力 ...

  2. java do po dto_彻底搞懂DAO,PO,BO,DTO,VO,DO

    原标题:彻底搞懂DAO,PO,BO,DTO,VO,DO 有干货,就分享,点上面的蓝字"测试之道"关注. 上才艺,哦不,上图... Entity 最常用实体类,基本和数据表一一对应, ...

  3. java实体类中有枚举类型_当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出?...

    当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出? 问题: orderStatus 和 payStatus都是枚举类,并且枚举的个数达地10来个,我们不可能在模板页面(jsp/ftl ...

  4. DAO PO BO DTO VO DO的区别

    Entity 最常用实体类,基本和数据表一一对应,一张表一个实体. DAO(Data Access Object):数据访问对象 是sun公司的一个标准j2ee设计模式的接口之一,负责持久层的操作.D ...

  5. Java开发工程师面试三分钟自我介绍

    大家好,我是一名Java开发工程师,拥有三年的工作经验.在这三年里,我主要负责后端开发工作,熟练使用Java.Spring框架等技术.此外,我也积极学习新技术,并在实际项目中运用.我认为自己具有良好的 ...

  6. tomcat 启动需要java环境吗?_三分钟教你Windows环境下,如何设置Tomcat随机自动启动?...

    一:确保tomcat 在点击binstartup 文件可以正常启动访问: 二:本机安装有JDK: 三:本机环境变量配置:JAVA_HOME:C:Javajdk1.7.0_17; 四:本机Tomcat环 ...

  7. PO/DO/DTO/VO/BO/POJO/DAO解释

    1.PO(persistant object) 持久对象 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合.PO 中应该不包 含任何对数据库的操作. 2.DO(Domain Ob ...

  8. 三分钟熟悉进制转换与位运算

    微信搜索[NO编程],关注这个不一样的公众号. 个人网站:www.newobject.cc 版权声明:本文为原创文章,转载请注明出处. 进制和位运算简介 进制也叫进位制,是一种记数方法,也称进位计数法 ...

  9. java中po_Java中PO,DO,DTO,VO的概念

    1.VO(View Object): 视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来. 2.DTO(Data Transfer Object): 数据传输对象,这个概念来源 ...

最新文章

  1. 《机器学习与数据科学(基于R的统计学习方法)》——2.11 R中的SQL等价表述...
  2. Delphi - 新语法介绍之For In
  3. 在虚拟机中快速安装 Ubuntu 18.04
  4. JS 搜索 --下拉列表
  5. 小明系列问题――小明序列(LIS)
  6. Redis工作笔记-事务
  7. CSS学习笔记--CSS语法与选择器
  8. mtr和nmap命令
  9. 离散信号频谱matlab代码,离散信号MATLAB频谱分析程序
  10. homework-06
  11. C语言:求矩阵非对角线元素的和
  12. Atitit 项目分析与统计目录1. 静态分析+动态分析 。其中, 12. 模块分析,与模块位置idx 13. 编程语言类型与版本 13.1. 类库统记表 类型与版本 23.2. 中间
  13. icarus主题的博客加载太慢
  14. 基于单片机的温湿度监测报警
  15. 百度云虚拟机访问项目404
  16. GOOGLE地图基站定位-Google Mobile Maps API
  17. java输出数组(java输出数组)
  18. 【C++】Placement New
  19. python 多任务
  20. python安装报_ssl问题

热门文章

  1. mysql configuration_MySQL Configuration 教程
  2. Spring Boot 缓存应用实践
  3. Nginx 一个牛 X 的功能,流量拷贝!
  4. 应用监控指标采集器 Prometheus 核心介绍
  5. crm系统是什么很棒ec实力_CRM系统都有哪些功能?CRM管理系统的主要用途又是什么?...
  6. Focal Loss升级 E-Focal Loss让Focal Loss动态化,类别极端不平衡也得到提升
  7. yolov5组件笔记
  8. 目标检测 yolov1
  9. Transformer LambdaNetworks
  10. 人脸关键点 HRNet-Facial-Landmark-Detection