PO、VO、BO、DTO、DAO、POJO有什么区别?

PO(Persistent Object)持久化对象,主要用于和数据库交互,是数据库数据在内存中的镜像。

VO(View Object)视图对象,和前端展示强相关,按需组装前端需要的字段。

BO(Business Object)业务对象,封装业务逻辑,包含业务处理方法,是业务层专用,业务层只操作BO,不直接碰PO/DTO。

DTO(Data Transfer Object)数据传输对象,屏蔽底层 PO 结构,可细分 ReqDTO(请求)和 ResDTO(响应),用于跨层或者跨服务传输数据。

DAO(Data Access Object)数据访问对象,负责和数据库打交道,隔离业务逻辑和数据操作,依赖PO,通过操作PO完成与数据库的交互。

POJO(Plain Ordinary Java Object)简单Java对象,最基础的Java类。

PO/VO/BO/DTO 本质上都是 POJO。

常见的调用链路

前端请求 → Controller接收【ReqDTO】→ Service将ReqDTO转为【BO】→ BO调用【DAO】→ DAO操作【PO】与数据库交互 → Service将BO/PO转为【ResDTO/VO】→ Controller返回给前端

相关推荐
向上的车轮10 小时前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
Dragon Wu10 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
跳动的梦想家h10 小时前
环境配置 + AI 提效双管齐下
java·vue.js·spring
坚持就完事了10 小时前
Java中的集合
java·开发语言
wjhx11 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
YCY^v^11 小时前
JeecgBoot 项目运行指南
java·学习
人间打气筒(Ada)11 小时前
jenkins基于Pipeline发布项目
java·pipeline·jenkins·流水线·ci·cd·cicd
爬山算法11 小时前
Hibernate(88)如何在负载测试中使用Hibernate?
java·后端·hibernate
自不量力的A同学11 小时前
Solon AI v3.9 正式发布:全能 Skill 爆发
java·网络·人工智能
万岳科技系统开发11 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法