【java编程】vo、po、dto、bo、pojo、entity、mode如何区分

Java Bean:一种可重用组件,即”一次编写,任何地方执行,任何地方重用”。满足三个条件

  • 类必须是具体的和公共的
  • 具有无参构造器
  • 提供一致性设计模式的公共方法将内部域或暴露成员属性

VO

value object:值对象
通常用于业务层之间的数据传递,由new创建,由GC回收
和PO一样也是仅仅包含数据而已,但应是抽象出的业务对象,可以和表对应,也可以不是

PO

persistant object:持久层对象
是ORM(Objevt Relational Mapping)框架中Entity,PO属性和数据库中表的字段形成一一对应关系
VO和PO,都是属性加上属性的get和set方法;表面看没什么不同,但代表的含义是完全不同的

DTO

data transfer object:数据传输对象
是一种设计模式之间传输数据的软件应用系统,数据传输目标往往是数据访问对象从数据库中检索数据
数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具任何行为除了存储和检索的数据(访问和存取器)
简而言之,就是接口之间传递的数据封装
表里面有十几个字段:id,name,gender(M/F),age……

页面需要展示三个字段:name,gender(男/女),age
DTO由此产生,一是能提高数据传输的速度(减少了传输字段),二能隐藏后端表结构

【java编程】vo、po、dto、bo、pojo、entity、mode如何区分

BO

business object:业务对象
BO把业务逻辑封转为一个对象,通过调用DAO方法,结合PO或VO进行业务操作
PO组合,如投保人是一个PO,被保险人是一个PO,险种信息是一个PO等等,他们组合气来是第一张保单的BO

POJO

plian ordinary java object:简单无规则java对象
纯的传统意义的java对象,最基本的Java Bean只有属性加上属性的get和set方法

可以额转化为PO、DTO、VO;比如POJO在传输过程中就是DTO

DAO

data access object:数据访问对象
是sun的一个标准j2ee设计模式,这个模式中有个接口就是DAO,负责持久层的操作
主要用来封装对数据的访问,注意,是对数据的访问,不是对数据库的访问

【java编程】vo、po、dto、bo、pojo、entity、mode如何区分

Entity

实体,和PO的功能类似,和数据表一一对应,一个实体一张表

Original: https://www.cnblogs.com/shangxiaofei/p/11950831.html
Author: 无信不立
Title: 【java编程】vo、po、dto、bo、pojo、entity、mode如何区分

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

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

(0)

大家都在看

  • 深入Synchronized各种使用方法

    在Java当中synchronized通常是用来标记一个方法或者代码块。在Java当中被synchronized标记的代码或者方法在同一个时刻只能够有一个线程执行被synchron…

    Java 2023年6月8日
    077
  • 《Spring实战》学习笔记-第五章:构建Spring web应用

    之前一直在看《Spring实战》第三版,看到第五章时发现很多东西已经过时被废弃了,于是现在开始读《Spring实战》第四版了,章节安排与之前不同了,里面应用的应该是最新的技术。 本…

    Java 2023年5月29日
    083
  • 多线程socket编程示例

    工程: 代码: package com.my.socket.business; /** * 业务实现类 * * @author ZY * */ public class CoreM…

    Java 2023年5月30日
    080
  • MYSQL8.0-JSON函数简单示例-JSON_EXTRACT|JSON_VALUE|JSON_TABLE

    JSON类型在日常应用开发中,用得很少,个人通常用于存储常常变化的配置参数。 它适用于什么业务场景,不好说。就好像许多年前读到的一篇文章,说有个国外公司利用ORACLE的CLOB/…

    Java 2023年6月9日
    085
  • api接口基础Day2

    十六进制的权: 16的0次幂————-1 16的1次幂————-16 16的2次幂————-256 16的3次幂———-…

    Java 2023年6月13日
    084
  • 二叉树与红黑树的java实现

    二叉树的java实现 红黑树的java实现(备注:中序遍历、查找、最大、最小、前驱、后继与二叉树基本一致) java;gutter:true; public class RBTre…

    Java 2023年6月5日
    096
  • Java多线程(三)

    Java多线程(三) Java多线程(三) – 五、线程的通信 5.1 wait() 与 notify() 和 notifyAll() 介绍: 5.2 wait() 的…

    Java 2023年6月9日
    065
  • java 删除字符串首尾指定字符

    package com.sankuai.dolphin.common.util; public class StringTrimUtils { /** * 删&#x9…

    Java 2023年5月29日
    0106
  • Java内存问题分析与定位

    简介 JNI方法申请的native 内存,通常是在JDK库里;本地 C++ 方法直接通过 malloc申请的内存,不受JVM管控。 堆内内存: 指Java堆,GC算法管理的内存区域…

    Java 2023年5月29日
    092
  • 33岁程序员的年中总结

    人生在不同的阶段会有不同的生活方式和思考问题的角度,这是一件非常有趣的事~ 比如,我在 22 岁会想:怎么才能赚大钱,怎么才能升值加薪? 在 25 岁会想:去哪买房?什么时候结婚?…

    Java 2023年5月29日
    086
  • JavaMail 网易邮件发送demo-发送带附件的邮件

    使用Java应用程序发送 E-mail,需要在机子上安装 JavaMail API 和Java Activation Framework (JAF) 。 可以从 Java 网站下载…

    Java 2023年5月29日
    094
  • JAVA操作InfluxDB的一个Demo

    一、基础连接类 package com.test.repository.utils; import com.test.domain.entry.bo.common.InfluxDb…

    Java 2023年5月29日
    089
  • spring boot 中英文官方文档

    中文文档:http://oopsguy.com/documents/springboot-docs/1.5.4/index.html#boot-features 英文官方文档:ht…

    Java 2023年6月13日
    095
  • Java中static块、构造块、构造函数的执行顺序

    最近被一个面试题难住了,看来之前对JAVA的执行顺序欠了解。以为原面试题代码: public class Example { public static void main(Str…

    Java 2023年5月29日
    079
  • 控制反转,依赖注入,依赖倒置傻傻分不清楚?

    通过这篇文章,你将了解到 控制反转(IoC)是什么?「反转」到底反转了什么? Spring和IOC之间是什么关系? 依赖注入(DI)和依赖倒置原则(DIP)又是什么? IOC、DI…

    Java 2023年6月7日
    0101
  • wJa丨Java闭源项目的自动化测试

    本文是 i 春秋论坛作家「Wker」表哥分享的技术文章,文章旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。 wJa支持反编译Java生成的jar包文件,整理成语法树,根…

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