(转)java术语(PO/POJO/VO/BO/DAO/DTO)

转自:http://blog.csdn.net/gaoyunpeng/article/details/2093211

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建模框架

Original: https://www.cnblogs.com/jenson138/p/6542780.html
Author: jenson138
Title: (转)java术语(PO/POJO/VO/BO/DAO/DTO)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/536633/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 幂等公共组件

    前言 今天想聊一聊幂等相关的知识,以及实现一个幂等公共组件需要重点涉及和思考的点。 概念 首先,什么是幂等,在实际代码生产过程中有什么作用呢? 在编程中一个 _幂等_操作的特点是其…

    Java 2023年6月14日
    087
  • Libgdx游戏开发(1)——环境配置及demo运行

    原文: Libgdx游戏学习(1)——环境配置及demo运行 – Stars-One的杂货小窝 Libgdx游戏是基于Java的一款游戏引擎,可以发布Android,桌…

    Java 2023年6月14日
    0103
  • for、foreach、stream 哪家的效率更高,你真的用对了吗?

    昨天在《SQL中那么多函数,Java8为什么还要提供重复的Stream方法,多此一举?》一文中,有同学指出Stream在数据量不庞大的情况,效率不如for循环。 这个就触及到我的知…

    Java 2023年5月29日
    0122
  • SpringMVC 解析(四)编程式路由

    多数情况下,我们在使用Spring的Controller时,会使用@RequestMapping的形式把请求按照URL路由到指定方法上。Spring还提供了一种编程的方式去实现请求…

    Java 2023年6月8日
    0116
  • 建造者模式(创建型)

    建造者模式 介绍 建造者模式注重的是部件构建的过程,意在 通过一步一步地精确构造出一个复杂的对象。 可以将建造者模式理解为,假设我们有一个对象需要建立,这个对象是由多个组件(Com…

    Java 2023年6月15日
    089
  • Springboot 之 JDBC 多数据源实现

    Springboot 中使用 JdbcTemplate 实现多数据源比较简单。查看 JdbcTemplate 源码;可以发现 JdbcTemplate 提供了传入 DataSour…

    Java 2023年6月7日
    0107
  • 【STM32F4】【银杏科技ARM+FPGA】iCore3移植RT-Thread–内核之线程的创建

    RT-Thread系统中线程是调度的最小单位,后面的内核讲解都是以线程为单位展开的,线程的本质就是我们平时跑的裸机函数,但是它添加了实时性的元素,可以函数级的抢占,但不存在中断嵌套…

    Java 2023年5月29日
    074
  • 深入理解 Java 并发锁

    📦 本文以及示例源码已归档在javacore 一、并发锁简介 确保线程安全最常见的做法是利用锁机制( Lock、 sychronized)来对共享数据做互斥同步,这样在同一个时刻,…

    Java 2023年5月29日
    071
  • 阿里云-快速搭建Spring Boot环境(Java,IntelliJ IDEA)

    本步骤主要介绍使用Spring Assistant插件来搭建简单的Spring Boot项目。 在IntelliJ IDEA启动界面,单击 Create New Project。 …

    Java 2023年5月29日
    080
  • Java中serialVersionUID是干嘛的?

    serialVersionUID是在反序列化时校验版本的,如果传过来的字节流中的serialVersionUID和本地定义的版本号不一致,则不支持序列化,并抛出InvalidCas…

    Java 2023年5月29日
    063
  • Java面向对象

    Java的核心思想就是OOP 面向过程 & 面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么… 面对过程适合处理一些较为简单的问题* 面向对象思…

    Java 2023年6月5日
    079
  • Java导出带格式的Excel数据到Word表格

    前言 在Word中创建报告时,我们经常会遇到这样的情况:我们需要将数据从Excel中复制和粘贴到Word中,这样读者就可以直接在Word中浏览数据,而不用打开Excel文档。在本文…

    Java 2023年6月15日
    079
  • 循环链表(约瑟夫环)思路及实现

    单链表的尾节点指向首节点,即可构成循环链表 约瑟夫问题:有 N 个人围成一圈,每个人都有一个编号,编号由入圈的顺序决定,第一个入圈的人编号为 1,最后一个为 N,从第 K (1 O…

    Java 2023年6月16日
    082
  • mysql搭建主从复制(一主一从,双主双从)

    主从复制原理 Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行…

    Java 2023年6月7日
    097
  • 前后端分离结构中使用shiro进行权限控制

    前阵子在前后端分离项目中集成shiro项目,折腾了一下子,参考了网上一些博客,发现大多都还是之前传统的模式,并不适用于前后端分离结构。今天抽空整理了下demo,方便以后使用以及后来…

    Java 2023年6月5日
    093
  • Elastic APM 上报数据分析(链路跟踪)与应用

    在入正题之前我们再回顾下它的架构图: 本文章主要分析AMP各索引的作用,与及结合1.7环境上已接入的服务数据对比后,对索引中的主要字段进行解析。文章分为四个小章节。 1、索引类型 …

    Java 2023年6月6日
    0105
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球