(转)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)

大家都在看

  • Mysql优化之-explain(执行计划)

    使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其…

    Java 2023年6月8日
    0131
  • Windows安装jdk1.8和配置环境变量

    Original: https://www.cnblogs.com/qtiger/p/15986266.htmlAuthor: 搬砖滴Title: Windows安装jdk1.8和…

    Java 2023年5月30日
    074
  • 创建线程有几种方式?

    创建线程的几种方式 1️⃣ 继承 Thread 类 继承 Thread 类创建线程的步骤为: 1)创建一个类继承Thread类,重写run()方法,将所要完成的任务代码写进run(…

    Java 2023年6月15日
    085
  • nacos

    https://nacos.io/zh-cn/docs/quick-start.html 以2.1.0版本的nacos为例,bin/startup.cmd默认模式是cluster会…

    Java 2023年6月8日
    083
  • 正则表达式

    知识点 正则表达式:正&a…

    Java 2023年6月5日
    084
  • SSH远程登录

    1、首先我们得清楚,客户端、服务端两端都是通信端。都有【公钥、私钥】 2、公钥 public key,就是大家都是可以获得的,但是有一个特点就是:该公钥加密的内容,只有我的私钥能解…

    Java 2023年6月7日
    062
  • @RequestBody使用说明

    @RequestBody 使用 @RequestBody这个对于一般刚接触来说,确实有点陌生,但是现在前端,后端技术分的太细,越来越多的技术层出不穷,前端就分化出POST ,GET…

    Java 2023年6月16日
    084
  • 【Java分享客栈】一个包装过简历的新同事写完微信支付引起事故后果断离职了

    挺长时间没发文了,因为公司有一个紧急项目要赶进度,加班如吃饭喝水,久违的进入到码农的状态。 之所以抽空来发个文,是这个项目才刚上线,时间不长却因为一位新同事的代码引起了生产环境的事…

    Java 2023年6月9日
    068
  • 120_入门案例-Work模式-公平分发(Fair Dispatch)

    Work模式公平分发(Fair Dispatch) 生产者 消费者-Work1 消费者-Work2 小结 总结 Work模式公平分发(Fair Dispatch) :::info参…

    Java 2023年6月7日
    091
  • windows 2003 不同网段 无法 文件共享 VSS设置

    网上搜索了很多解答,比如设置VPN, 修改ETC表, 自己也设置了VPN,确实可以,设置的过程需要关闭WINDOWS自带的防火墙,让我觉得不太习惯。 就研究了下防火墙的例外项 点击…

    Java 2023年6月14日
    082
  • 逃逸分析(Escape Analysis)详解

    概念说明 逃逸分析,是一种可以有效减少Java 程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。通过逃逸分析,Java Hotspot编译器能够分析出一个新的对象的引用的…

    Java 2023年6月16日
    083
  • springboot整合三 共享session,集成springsession

    Mave依赖 参数配置 2.1 redis 配置: 2.1 若使用yml文件,则如下配置 设置Redis支持的Spring Session 3.1 方案一 基于springboot…

    Java 2023年5月30日
    078
  • Javaweb09-请求跳转项目 分页条件查询 + 增删改 + 邮件登录

    1、Jar 包 UTF-8 1.7 1.7 1.18.12 4.11 5.1.47 1.2.62 javax.servlet javax.servlet-api 3.1.0 pro…

    Java 2023年6月15日
    057
  • Java 基础常见知识点&面试题总结(下),2022 最新版!

    你好,我是 Guide。秋招即将到来,我对 JavaGuide 的内容进行了重构完善,同步一下最新更新,希望能够帮助你。 前两篇: Java 基础常见知识点&面试题总结(上…

    Java 2023年6月9日
    088
  • 获取类的子类

    原理: 1、扫描指定路劲下的JAVA文件 2、利用反射 package com.util; import java.nio.file.Files; import java.nio….

    Java 2023年6月6日
    077
  • MINIO使用

    1.作用 官网地址:https://docs.min.io/ 文件存储。文件对象的上传、下载和删除! 2.使用依赖 io.minio minio 8.4.3 3. 构建client…

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