Question :常用的Java对象概念

PO(Persistant Object),持久对象,用于表示数据库中的一条记录映射成Java对象,一般数据表有多少字段,PO就会有多少字段。PO仅用于表示数据,没有任何数据操作,完全是一个遵守Java Bean规范的纯Java对象,拥有getter/setter方法。


VO(Value Object),值对象,通常用于业务层之间传递数据,和PO一样也是仅仅包含数据而已。例如后台与前端进行交互,可以使用VO只包含前段需要的字段,这样可以减少传输数据量大小和保护数据库结构不被外泄。VO可以根据具体业务需求设计即可,它同样遵守Java Bean规范。


DTO(Data Transfer Object),数据传输对象,用于不通服务间传输数据。泛指表现层和服务层之间数据传递对象;


BO(Business Object),业务对象,用于表示封装业务逻辑的Java对象。常位于业务层,提供基本业务单元的操作。通过调用DAO方法,结合PO、VO进行业务操作。可以参考网上的一个例子来理解:
例如一个简历包含教育经历、工作经历、社会关系三部分;我们可以把教育经历对应一个PO、工作经历对应一个PO、社会关系对应一个PO;然后创建一个对应简历的BO对象,这个BO中包含以上三个PO;这样一来,我们在处理业务逻辑时就可以针对BO去处理。


POJO(Plain Ordinary Java Object),简单Java对象,就是普通的JavaBeans,上面介绍的PO、VO、DTO都是典型的POJO。
一个POJO持久化后就是PO;直接用POJO传递就是DTO;直接用来对应表示层就是VO;


DAO(Data Access Object),数据访问对象,用于访问数据库,包括增、删、改、查等操作,与PO一起使用。DAO一般在持久层,完全封装数据库操作,对外暴露方法,使上层应用无需关注数据库相关的信息侧偶作。


例如:
数据表:username、address、password
PO :username、address、password
DTO:username、address
VO: username、address
DAO:数据表的增删改查


参考链接:
https://blog.csdn.net/gaoyunpeng/article/details/2093211
http://www.cnblogs.com/lyjin/p/6389349.html
https://www.zhihu.com/question/39651928

Java实习日记(6)相关推荐

  1. 大三暑期去上海亚信实习日记

    实习日记 我是一名某三本院校的大三学生,专业是"数据科学与大数据技术",在钉钉时代,找到了我第一份实习.公司是亚信科技,应聘的岗位是JAVA开发,地点在上海. 2020年6月11日 ...

  2. 【日记】Java学习日记(第63天)持续无聊更新

    前言 Youtube上EJ Media(up主)的视频我依次学完了HTML.CSS.Javascript.Jquery.觉得他教得挺好的(短小精悍),就继续学他教的JAVA.感觉EJ教的都是些语法什么 ...

  3. css碎步测量,隧洞测量实习日记.doc

    隧洞测量实习日记 隧洞测量实习日记 篇一:隧道施工测量实习日记1 今天是我来到中遂股份合福高铁闽赣段七工区的第一天,是把自己所学的理论知识用到实践中来的时候了,很开心!这一天单位上的所有人对我的到来表 ...

  4. 从零基础到拿到网易Java实习offer,我做对了哪些事

    点击上方蓝字可以订阅哦! 作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右 ...

  5. Java学习日记1——基础认知

    Java学习日记1--基础认知 学习Java阶段,如果发现不正确的描述,还请指正! 首先附上Java相关下载链接和配置教程链接 Java相关软件工具下载地址:官方下载 Java环境配置(win10配置 ...

  6. Java实习面试重点基础知识

    今天第一次参加面试,十分紧张,加上本身我就学艺不精,没系统学过Java去面Java实习,问出的许多问题我都没有回答出来,估计我的第一次实习生面试凉了. 不过总不能沉溺于过去,总结一下今天面试中我遇到的 ...

  7. java实习报告范文

      篇1:java实习报告范文一.前言 实习时间:20_年02月07号---20_年06月1号 实习地点:河北中信联信息技术有限公司软件开发实习生 实习目的:通过实习,培养学生树立理论联系实际的工作作 ...

  8. 关于java实习心得总结(十篇)

    关于java实习心得总结(篇一) 初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么TurboC,VisualC++好用,什么JA_HOME,CLASSPATH,虚拟机 ...

  9. Java 实习要掌握的知识

    1. Java 基础知识: Java 基础语法:包括变量.常量.数据类型.运算符.流程控制语句等. 面向对象编程的概念:如类.对象.继承.多态.接口等. 异常处理机制:如 try-catch-fana ...

  10. 计算机网络维护日记,计算机网络维护实习日记.doc

    计算机网络维护实习日记.doc (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 videoconference, Secreta ...

最新文章

  1. 阿里文娱搜索算法实践与思考
  2. python flask gunicorn nginx 部署
  3. 物理化学 化学 动力学(下)
  4. 最详细的linux下的磁盘分区及格式化
  5. 前端模式 VD, 脏检查 MVVM ,数据收集 MVVM 所使用的场合
  6. Windows10远程桌面连接提示:出现身份验证错误,要求的函数不受支持
  7. CentOS 7 各个版本的区别
  8. (9)二进制文件方式部署Kubernetes高可用集群----------部署master节点
  9. 平面与网页设计中关于颜色搭配的问题
  10. awesome系列网址
  11. Python中的*和**
  12. GAN二次元头像生成Pytorch实现(附完整代码)
  13. moses 编译_MOSES安装以及使用说明
  14. RocketMq之消费方式
  15. python美化excel_Python 使用 prettytable 库打印表格(美化输出)
  16. RTK模块性能测试分析对比-GNSS实测- RTK板卡100赫兹延迟实测及分析
  17. ASP.NET 上传图片添加文字、Logo水印
  18. dll修复精灵无法链接服务器,教你一键dll修复精灵怎么使用
  19. Python中使用遍历在列表中添加字典的坑
  20. ecplise提示:“The selection cannot be launched, and there are no recent launches.”

热门文章

  1. PMP-2.项目集、项目组合、项目运营和生命周期
  2. R语言数据分析之二-《R语言判断相关性-excel文件xlsx文件》
  3. 怎样让电脑中的jar包显示Java图标
  4. php tp admin怎么安装,TP的配置及安装 · Thinkphp5.1+AdminLTE内容管理系统(商城版) 请不要购买 到群上下载源码 · 看云...
  5. 【刘润五分钟商学院】-151幸存者偏见
  6. USB充电限流芯片,5V输入,输出5V,6V触发关闭
  7. tcp 粘包是怎么产生的?
  8. jclasslib插件_IDEA安装jclasslib 插件查看字节码详解
  9. m3u8在线提取工具:M3U8 Downloader 高速专业m3u8下载器下载
  10. 机械手三维图 matlab,机械手的三维建模