Java 中的 PO、VO、BO、DTO、DAO、POJO 概念

本文深入解析JavaEE的分层结构,包括DAO、PO、BO、VO、DTO和POJO的概念与区别,以及它们在不同层级中的作用。同时,介绍了分层领域模型的规约与命名规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、JavaEE 结构分层

参考博客: 详述 PO VO BO DTO DAO 和 POJO 的概念及区别
在这里插入图片描述

  • DAO数据访问对象,负责持久层的操作,为业务层提供接口,主要用来封装对数据库的访问,常见操作无外乎 CURD

    可以认为一个 DAO 对应一个 POJO 对象

    • 位于业务逻辑与数据库资源中间,可以结合 PO 对数据库进行相关操作
  • PO持久层对象,由属性与 setter、getter 组成,可以将数据库表中的一条记录理解为一个持久层对象
    • PO 属性跟数据库表的字段一一对应

    • PO 中不包含任何对数据库的操作

  • BO业务层对象,把业务逻辑封装为一个对象

    例子: 让教育经历和项目经历分别对应一个 PO,则在建立对应简历的 BO 对象时,让每个 BO 都包含这些 PO 即可

  • VO值对象,用于业务层之间的数据传递

    VO 也称为页面对象,即所代表的是整个页面展示层的对象

  • DTO数据传输对象,用于远程调用等需要大量传输对象,抽取出需要的 PO 属性

    例子: 一张数据表含有 25 个字段,则 PO 有 25 个属性,但页面只需 5 个字段,因此只需把仅有 5 个属性的 DTO 把结果传递给客户端即可

  • POJO简单 Java 对象

二、分层领域模型

分层领域模型规约:

  • DO(Data Object):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象
  • DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象
  • BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象
  • AO(Application Object):应用对象,在 Web 层与 Service 层之间抽象的复用对象模型,极为贴近展示层,复用度不高
  • VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象
  • POJO(Plain Ordinary Java Object):专指 setter/getter/toString 的简单类,包括 DO/DTO/BO/VO 等
  • Query:数据查询对象,各层接收上层的查询请求。

    注意超过 2 个参数的查询封装,禁止使用 Map 类来传输

领域模型命名规约:

  • 数据对象:xxxDO,xxx 即为数据表名
  • 数据传输对象:xxxDTO,xxx 为业务领域相关的名称
  • 展示对象:xxxVO,xxx 一般为网页名称

POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值