展开

关键词

2019-04-01 POJO PO BO DO DTO VO的区别分别代表什么含义

阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义分层领域模型规约:DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。 POJO PO BO DO DTO VO 概述 缩写 全称 中文 功能 说明 POJO plain ordinary java object 无规则简单java对象 中间对象,与其他对象转换 PO persistent DTO data transfer object 数据传输对象 跨进程或远程传输 DO domain object 领域对象 从世界中抽象出来的有形或无形的业务体 DAO data access ,在将数据返给前端时,前端不需要知道后端是几张表的,只需要知道解析这个对象中的相关属性即可;此时需要BO对象来中转,BO对象对应多个PO对象 有这种疑问通常是BO与PO对象的属性完全没有区别,此时需要考虑程序业务逻辑 ,是否需要将查询结果全部返回给调用方 参考资料 POPOJOBODTOVO的区别 Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和项目例图(转) Java中DOBODTOVOAOPO

1.2K20

DTO与值对象和POJO比较

本文想澄清DTO与Value Object与POCO的区别,其中DTO代表数据传输对象,而POCO是Plain Old CLR Object,在Java环境中也称为POJO。 它只是对象如何存储在内存中的细节,我不打算触及它。这里将讨论的是DDD概念中的值对象Value Object。DTO,Value Object和POCO等概念经常互换使用。但他们真的是同义词吗? POCO(Plain Old CLR Object)是一个术语,类似POJO,因为“POJO”本身不能在.NET中使用,因为其中的字母“J”代表“Java”。因此,POCO具有与POJO相同的语义。 同时,POCO是一个更广泛的集合:它可以是值对象,体,DTO或您可能创建的任何其他类,只要它不会遗漏您域中的意外复杂性。? 请注意,POCO可能都有自己的身份,也没有自己的身份。 它取决于它的POCO类型:值对象或体。此外,POCO可能包含也可能不包含逻辑。这取决于天气与否POCO是DTO。总结以下内容总结这个主题:1、DTO

68020
  • 广告
    关闭

    11.11智惠云集

    2核4G云服务器首年70元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从产品展示页面谈谈Hybris系列之二: DTO, Converter和Populator

    一个尚未回答的问题: 为什么DTO(在上一篇文章的具体例子里是Java类ProductData)会由Converter来生成?这篇文章就从此问题开始。我们再次翻出上一篇文章展示过的这张架构图。? 在ProductPopulator中:Source对应Java类ProductModelTarget对应Java类ProductData可见, Populator一般用于从Service层的DAO对象生成 在Hybris的标准里诸如Product url属性这样需要调用其它Service来处理后然后再展示到前端的例子还有很多。 本文介绍的DAO和DTO, 不仅仅出在Hybris里,在SAP的很多其他产品里也有用到。 至此我们能发无论是在SAP Hybris还是SAP CRM里,这种DAO到DTO的映射都体在具体的代码里。

    25450

    从产品展示页面谈谈Hybris系列之二: DTO, Converter和Populator

    一个尚未回答的问题: 为什么DTO(在上一篇文章的具体例子里是Java类ProductData)会由Converter来生成? 这篇文章就从此问题开始。 我们再次翻出上一篇文章展示过的这张架构图。 关于Populator的际例子, 我们可以看看ProductUrlPopulator这个类, 它是接口Populator的一个具体类, 位于packagede.hybris.platform.commercefacades.product.converters.populator 在Hybris的标准里诸如Product url属性这样需要调用其它Service来处理后然后再展示到前端的例子还有很多。 本文介绍的DAO和DTO, 不仅仅出在Hybris里,在SAP的很多其他产品里也有用到。 至此我们能发无论是在SAP Hybris还是SAP CRM里,这种DAO到DTO的映射都体在具体的代码里。

    55490

    Mybatis传 ARRAY给Oracle存储过程

    2.在service层填充参数 例如:@Override public Dto addFloorList(BannerRequest req) { Dto dto = new Dto(); List 参考资料:1.how-to-pass-java-list-of-objects-to-oracle-stored-procedure-using-mybatis:http:stackoverflow.comquestions12719689how-to-pass-java-list-of-objects-to-oracle-stored-procedure-using-mybatis2

    79330

    java类名包名解释

    VO:值对象、视图对象 PO:持久对象 QO:查询对象 DAO:数据访问对象——同时还有DAO模式 DTO:数据传输对象——同时还有DTO模式 PO:全称是persistant object持久对象最形象的理解就是一个 VO :value object值对象ViewObject表层对象主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。 POJO :plain ordinary java object 简单java对象个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。 它可以把POJO持久化为PO,用PO组装出来VO、DTO model:存放模型,通常是体BEAN,也就是你业务建模分析出来的那些actor等物类。 service:是后来网上大多数人经验总结出来,从而增加了这么一个层次,主要是为了降低耦合,面向接口、组件编程,具体的服务类,能产生际效果和影响的类放于此。

    83770

    java分层架构概念

    的的事物变成java中的对象)作用是一暂时存储数据方便持久化(存入数据库或者写入文件)而是 作为一个包裹封装一些数据来在不同的层以及各种java对象中使用   dao是数据访问层  就是用来访问数据库数据的持久化 ,如果你操作的是user表则service的类就去调用userDAO。 Action类 是    DAO(Data Access Object) 是一个接口  4. 什么是Pojo类?  简单的Java对象(Plain Old Java Objects)际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接.  就相当于一个QO;在使用hibernate的时候我们会定义一些查询的方法,这些方法写在接口里,可以有不同的类.而这个接口就可以说是个DAO.个人认为QO和DTO差不多.

    67141

    java类名包名解释

    VO :value object值对象ViewObject表层对象主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。 POJO :plain ordinary java object 简单java对象个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。 它可以把POJO持久化为PO,用PO组装出来VO、DTO model:存放模型,通常是体BEAN,也就是你业务建模分析出来的那些actor等物类。 service:是后来网上大多数人经验总结出来,从而增加了这么一个层次,主要是为了降低耦合,面向接口、组件编程,具体的服务类,能产生际效果和影响的类放于此。 util:utility是存放工具类相关的JAVA代码的,比如采用filter过滤器,还有一些其他的相关小工具杂类亦存放于此。

    24510

    恕我直言,在座的各位根本写不好Java

    作者:Lrwin,转自:lrwinx.github.io其,本不想把标题写的那么恐怖,只是发很多人干了几年 Java 以后,都自认为是一个不错的 Java 程序员了,可以拿着上万的工资都处宣扬自己了 抽象接口定义当际工作中,完成了几个 API 的 DTO 转化时,我们会发,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。 再查工具类再来看 DTO 内部转化的代码,它了我们自己定义的 DTOConvert 接口,但是这样真的就没有问题,不需要再思考了吗? 再以上班的 API 例进行说明,我们在对 DTO 数据进行检查:public class UserDTO { @NotNull private String username; @NotNull private Linux 基础命令这点其和会写 Java 没有关系,但是 Linux 很多时候确承载运行 Java 的容器,请学好 Linux 的基础命令。

    20340

    细思极恐-你真的会写java吗?

    文章核心其,本不想把标题写的那么恐怖,只是发很多人干了几年java以后,都自认为是一个不错的java程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽和我一样做java的同行们, 抽象接口定义当际工作中,完成了几个api的DTO转化时,我们会发,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。 我们再看这个保存用户的例子,你将发,api中返回值是有些问题的,问题就在于不应该直接返回User体,因为如果这样的话,就暴露了太多体相关的信息,这样的返回值是不安全的,所以我们更应该返回一个DTO (userInputDTO); 你会发,new这样一个DTO转化对象是没有必要的,而且每一个转化对象都是由在遇到DTO转化的时候才会出,那我们应该考虑一下,是否可以将这个类和DTO进行聚合呢,看一下我的聚合结果 再查工具类再来看DTO内部转化的代码,它了我们自己定义的DTOConvert接口,但是这样真的就没有问题,不需要再思考了吗?

    34550

    细思极恐 - 你真的会写 Java 吗?

    文章核心其,本不想把标题写的那么恐怖,只是发很多人干了几年 Java 以后,都自认为是一个不错的 Java 程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽和我一样做 Java 抽象接口定义当际工作中,完成了几个 API 的 DTO 转化时,我们会发,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。 再查工具类再来看 DTO 内部转化的代码,它了我们自己定义的 DTOConvert 接口,但是这样真的就没有问题,不需要再思考了吗? 再以上班的 API 例进行说明,我们在对 DTO 数据进行检查:public class UserDTO { @NotNull private String username; @NotNull private Linux 基础命令这点其和会写 Java 没有关系,但是 Linux 很多时候确承载运行 Java 的容器,请学好 Linux 的基础命令。

    20830

    细思极恐 - 你真的会写 Java 吗?

    文章核心其,本不想把标题写的那么恐怖,只是发很多人干了几年 Java 以后,都自认为是一个不错的 Java 程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽和我一样做 Java 抽象接口定义当际工作中,完成了几个 API 的 DTO 转化时,我们会发,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。 再查工具类再来看 DTO 内部转化的代码,它了我们自己定义的 DTOConvert 接口,但是这样真的就没有问题,不需要再思考了吗? 再以上班的 API 例进行说明,我们在对 DTO 数据进行检查:public class UserDTO { @NotNull private String username; @NotNull private Linux 基础命令这点其和会写 Java 没有关系,但是 Linux 很多时候确承载运行 Java 的容器,请学好 Linux 的基础命令。

    22530

    Java分层概念(转)

    (下面所描述的service层就是biz) 首先这是在最基本的分层方式,结合了SSH架构。modle层就是对应的数据库表的体类。 ,调用biz方法,转发到下一个action或者页面) 模型成(model)一般是体对象(把的的事物变成java中的对象)作用是一暂时存储数据方便持久化(存入数据库或者写入文件)而是 作为一个包裹封装一些数据来在不同的层以及各种 java对象中使用 dao是数据访问层 就是用来访问数据库数据的持久化(把内存中的数据永久保存到硬盘中 其他答案: Action是一个控制器 Dao主要做数据库的交互工作 Modle 是模型 存放你的体类 Action类 是   DAO(Data Access Object) 是一个接口4. 什么是Pojo类? # PO对象需要序列化接口。PO是持久化对象,它只是将物理数据体的一种对象表示,为什么需要它?因为它可以简化我们对于物理体的了解和耦合,简单地讲,可以简化对象的数据转换为物理数据的编程。

    2K40

    用JUnit和Byteman测试Spring中的异步操作

    我们无需更改生产代码即可这一目标。测试将在JUnit 4中运行。对于测试,我们将使用Byteman库中的功能。 Byteman是一种工具,可将Java代码注入您的应用程序方法或Java运行时方法,而无需您重新编译、重新打包甚至重新部署应用程序。 在,该应用程序只包含一些测试,这些测试显示了如何测试这种情况。没有迹象表明在演示应用程序中为Bmunit-extension施的代码是唯一的方法,甚至是最好的方法。 包含Rest Controller:@RestControllerpublic class UserController { @Autowired private UserService service message); applicationCountDownLatch.mailServiceExecuteCountDownInHandleNewUserEventMethod();}应用这些更改后,我们可以以下测试类

    34110

    Java中的各种O

    Java中数据的封装会被命名为各种O,常见的有PO、VO、DTO、BO、POJO。 1.PO PO是Persistant Object的缩写,即持久化对象,通常对应数据模型,可以简单的理解为一个PO例对应数据库中的一条记录,操作该例即可以操作数据库中对应的数据。 3.DTO DTO是Data Transfer Object的缩写,即数据传输对象,通常用于封装服务与服务之间、分层与分层之间要传输的数据,不应该包含业务逻辑,对要传输的数据起到承载的作用。 5.POJO POJO是Plain Ordinary Java Object的缩写,即简单Java对象,一个只有属性及属性setter和getter方法的基本JavaBean,是一个中间对象,可以用于多种用途 ,用于数据传输它就是DTO,用于数据展示它就是VO。

    46350

    恕我直言,在座的各位根本不会写 Java!包括我~

    抽象接口定义当际工作中,完成了几个 API 的 DTO 转化时,我们会发,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。 .convert(userInputDTO);你会发,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出,那我们应该考虑一下,是否可以将这个类和 再查工具类再来看 DTO 内部转化的代码,它了我们自己定义的 DTOConvert 接口,但是这样真的就没有问题,不需要再思考了吗? 再以上班的 API 例进行说明,我们在对 DTO 数据进行检查:public class UserDTO { @NotNull private String username; @NotNull private Linux 基础命令这点其和会写 Java 没有关系,但是 Linux 很多时候确承载运行 Java 的容器,请学好 Linux 的基础命令。

    28020

    恕我直言,在座的各位根本不会写 Java!包括我~

    抽象接口定义当际工作中,完成了几个 API 的 DTO 转化时,我们会发,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。 .convert(userInputDTO);你会发,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出,那我们应该考虑一下,是否可以将这个类和 再查工具类再来看 DTO 内部转化的代码,它了我们自己定义的 DTOConvert 接口,但是这样真的就没有问题,不需要再思考了吗? 再以上班的 API 例进行说明,我们在对 DTO 数据进行检查:public class UserDTO { @NotNull private String username; @NotNull private Linux 基础命令这点其和会写 Java 没有关系,但是 Linux 很多时候确承载运行 Java 的容器,请学好 Linux 的基础命令。

    24540

    Java中的VO,PO等1.2.3.VO(value object) 值对象

    PO对象需要序列化接口。PO是持久化对象,它只是将物理数据体的一种对象表示,为什么需要它?因为它可以简化我们对于物理体的了解和耦合,简单地讲,可以简化对象的数据转换为物理数据的编程。 个人觉得同DTO(数据传输对象),在web上传递。 封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。POJO(plain ordinary java object) 简单无规则java对象纯的传统意义的java对象。 VO : value object 值对象 ViewObject表层对象 主要对应界面显示的数据对象。对于一个WEB页面,用一个VO对象对应整个界面的值。 ,可以有不同的类.而这个接口就可以说是个DAO.个人认为QO和DTO差不多.

    710100

    细思极恐 :你真的会写 Java 吗?

    文章核心其,本不想把标题写的那么恐怖,只是发很多人干了几年java以后,都自认为是一个不错的java程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽和我一样做java的同行们, 抽象接口定义当际工作中,完成了几个api的DTO转化时,我们会发,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。 我们再看这个保存用户的例子,你将发,api中返回值是有些问题的,问题就在于不应该直接返回User体,因为如果这样的话,就暴露了太多体相关的信息,这样的返回值是不安全的,所以我们更应该返回一个DTO (userInputDTO);你会发,new这样一个DTO转化对象是没有必要的,而且每一个转化对象都是由在遇到DTO转化的时候才会出,那我们应该考虑一下,是否可以将这个类和DTO进行聚合呢,看一下我的聚合结果 再查工具类再来看DTO内部转化的代码,它了我们自己定义的DTOConvert接口,但是这样真的就没有问题,不需要再思考了吗?

    75290

    恕我直言,在座的各位根本不会写 Java

    文章核心其,本不想把标题写的那么恐怖,只是发很多人干了几年 Java 以后,都自认为是一个不错的 Java 程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽和我一样做 Java 抽象接口定义当际工作中,完成了几个 API 的 DTO 转化时,我们会发,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。 再查工具类再来看 DTO 内部转化的代码,它了我们自己定义的 DTOConvert 接口,但是这样真的就没有问题,不需要再思考了吗? 再以上班的 API 例进行说明,我们在对 DTO 数据进行检查:public class UserDTO { @NotNull private String username; @NotNull private Linux 基础命令这点其和会写 Java 没有关系,但是 Linux 很多时候确承载运行 Java 的容器,请学好 Linux 的基础命令。

    24510

    相关产品

    • 消息队列 TDMQ

      消息队列 TDMQ

      消息队列 TDMQ 是基于 Apache 顶级开源项目Pulsar自研的金融级分布式消息中间件,是一款具备跨城高一致、高可靠、高并发的分布式消息队列,拥有原生Java 、 C++、Python、GO 多种API, 支持 HTTP 协议方式接入,可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券