求问 VM实体和dto实体的区别,有什么不同 5C

如题,不明白VM实体和dto实体有什么区别,感觉都是为了业务层展示数据实体的

0

7个回答

表现层与应用层之间是通过数据传输对象(DTO)进行交互的,数据传输对象是没有行为的POCO对象,它 的目的只是为了对领域对象进行数据封装,实现层与层之间的数据传递。为何不能直接将领域对象用于 数据传递?因为领域对象更注重领域,而DTO更注重数据。不仅如此,由于“富领域模型”的特点,这样 做会直接将领域对象的行为暴露给表现层。

需要了解的是,数据传输对象DTO本身并不是业务对象。数据传输对象是根据UI的需求进行设计的,而不 是根据领域对象进行设计的。比如,Customer领域对象可能会包含一些诸如FirstName, LastName, Email, Address等信息。但如果UI上不打算显示Address的信息,那么CustomerDTO中也无需包含这个 Address的数据

简单来说Model面向业务,我们是通过业务来定义Model的。而DTO是面向界面UI,是通过UI的需求来定义的。通过DTO我们实现了表现层与Model之间的解耦,表现层不引用Model,如果开发过程中我们的模型改变了,而界面没变,我们就只需要改Model而不需要去改表现层中的东西。

1
qq_35696975
qq_35696975 而且vm文件和dto文件除了后缀名不一样,其他都一样啊
一年多之前 回复

1、vm一般叫视图模型(view model)应用于表现层,具体框架如mvvm(model-view-viewModel)主要是为解决UI逻辑与视图分离;
2、Data Transfer Object(数据传输对象)感觉主要是用来与数据源进行数据交互。进行领域模型的转换。

1

哥们,我感觉vm实体对象也是根据ui表现层来设计的,和dto没什么区别啊

0

DAO叫数据访问对象,DTO是数据传输对象。
  DAO通常是将非对象数据(如关系数据库中的数据)以对象的方式操纵。DTO通常用于不同层(UI层、服务层或者域模型层)直接的数据传输,以隔离不同层,降低层间耦合。
  DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口,它显露了Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并允许 Visual Basic 开发者通过 ODBC 象直接连接到其他数据库一样,直接连接到 Access 表。DAO 最适用于单系统应用程序或小范围本地分布使用。

0

不明白VM实体和dto实体有什么区别,感觉都是为了业务层展示数据实体的
错,dto还可以用来在不同系统之间的api传输数据,比如你的程序调用天气预报web服务,返回的一个城市的天气信息的各种字段,就是dto,但是显然不是vm

0

也不用搞那么复杂,我理解就是dto就是数据表的映射,或者对数据表的简单封装

VM 就是为了前端展示,对数据表实体的重新组合,一些适合DB使用但不适合展示的(比如状态字段123代表停止、运行、暂停)要替换成实际含义

0

VM一般用做前端展示,VM展示的数据会比较复杂,可能是后台多个model、表数据的组合,VM的属性对应页面展示的元素
DTO是传输对象,我们一般用系统间交互,DTO对象的属性对应接口的参数

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数据库表转实体类和DTO
该工具可以对接数据库,将数据库中的表转换为java的实体类和DTO类。
IT 接口响应:足迹第十六步数据实体的类封装与Json封装(如何区别类封装VO,DTO,DO,PO)
返回一个集合如何做:nnMapper:增(int)删(int)改(int)查(List)nnnnService:增(ResultStatus.FAILURE异常)删(ResultStatus.FAILURE)改(ResultStatus.FAILURE)查多(PageInfo<>(list))+查单(模型类)nnnnController:nn增(ResponseEntity(Resul...
Dto转换实体类及AutoMapper的使用(1)
Class1:nnnnClass2:nnnn主程序:nnusing System;nusing System.Collections.Generic;nusing System.Linq;nusing System.Reflection;nusing System.Text;nusing System.Threading.Tasks;nusing AutoMapper;nnnnamespace C...
转换实体类字段不一致
package com.integralShopService.mapping;nnnimport com.account.dto.WaterAccountDto;nimport com.integralShopService.dto.WaterAccountSearchDto;nimport com.tools.rest2.mapper.mapping.MapperMapping; // too...
Dto转实体类 AutoMapper
AutoMapper工具的使用 Dto 与 实体类 的值相互转换
ABP CORE 通过实体类实现数据库表和DTO
1.下载ABP Code Power Tools by 52abp.com,地址nnhttps://marketplace.visualstudio.com/items?itemName=werltm.52ABPCodeGeneratornn2.在ABP.CORE中建立实体类,如图:nnnn实体类如下nnn public class Book : Entity<long>n {...
Java项目中 实体类(ENTITY,VO,DTO)理解
目录笔者想说一、ENTITY二、VO三、DTOn笔者想说n最近才算是真的开始了JavaEE的编程,遇到 DTO、VO 这两个概念的时候有点晕,不知道真正的作用,困扰几天后,决定好好查查 具体的意思nn一、ENTITYnnEntity(PO) 每个属性基本上都对应数据库表里面的某个字段。完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。持久对象是由insert数据库创建,...
利用Java反射机制和MapStruct解决具有继承关系的实体类和DTO之间的映射关系
关于MapStruct的使用此处不再赘述,如有不明白的同学,可以参考MapStruct官方文档或者我人机混合翻译后的文档。nn 先看一下我对以下代码简要的描述,Component类是一个基类,其下有许多继承于它的子类,我这项目里有二三十个子类,这里我只列举4个:Action、ActionGroupColumn、Column、CompositeComponent,每一个子类...
实体类转换DTO的方式
背景:在对外传输数据展示过程中,为了避免model层直接对外暴露,我们会多加一个对应的DTO保理想要传输的数据即可,隐藏model层。nn应对: n1.第一种,如果是实体类字段类型都一样,大部分会采用bean拷贝的方式,BeanUtils.copyProperties(obj,obj),单个对象的转换还好,但是List对象就要循环来转换。nn2.第二种,要是遇到驼峰类型字段与下划线字段的对象进行转...
DTO数据传输对象、AutoMapper了解(一)
在web应用程序中,我们通常把系统结构分为三层/多层。rn其中Model层存放我们的实体类.rnUI层,业务逻辑层,数据访问层均引用了Model层.rnrnrn在前台页面发送一个http请求,后台处理后返回相应的json数据.也就是对应的实体..rn比如EF中的Model,都是根据业务逻辑来建立的实体类,也可以称为是业务对象模型(领域模型)。rnrnrn那么在这里DTO又有什么作用?rnDTO:(
PostMan—— 参数为Model(Dto)数据
前提条件:EF框架,.net平台nn nn一、参数为单个Modelnn为前台写接口时,参数类型为dto类型或实体Model类型,请求类型POSTnnn//参数名为dton public JsonResult AddField(FieldDto dto)nnFieldDto 实体:nnn public class FieldDto : IAddDto, IEditDto<int>n ...
hibernate查询返回DTO对象,DTO封装了多个pojo对象的属性
      DTO-数据传输对象;pojo-最纯粹的java对象与数据库中的表一一对应。rn      简单讲:DTO起到业务数据的传递作用,pojo则与持久层数据库打交道。rn rn      有时候我们需要查询返回DTO对象,因为DTO封装我们操作此对象的业务方法;而这些业务方法从分层的思想上看不能封装到pojo中,因为这违背了hibernate编程规范,pojo(Plain Ordinary...
VO,DTO,POJO,Entity 分那么实体类型的原因
1、概述nn有时候我们工程中会出现多种实体类型: nVO,DTO,POJO,Entity n那么出现分那么实体类型的原因是什么呢?nnnn2、解释nn出现上面那么多类型的实体是因为项目分层导致, 一般会分为 ncontroller-> service -> dao n对于不同层会创建和使用不同类型的实体类型, n这样的好处就是当一个层的结构发生变化, 不影响到其他层的, 只要发生变...
dozker--实现map 实体 DTO之间的相互转化
Dozer 是一个对象转换工具。nDozer可以在JavaBean到JavaBean之间进行递归数据复制,并且这些JavaBean可以是不同的复杂的类型,n所有的mapping,Dozer将会很直接的将名称相同的fields进行复制,如果field名不同,或者有特别的对应要求,则可以在xml中进行定义nnnjava工具类是:npublic class DozerBeanCopy {
Asp.mvc(二)~使用AutoMapper实现领域模型与DTO映射
Mongodb~Asp.Mvc+Mongodb(二)上一篇中介绍了Core, Data 以及 Services 层,在介绍 Presentation 层之前,我们需要了解下面几个知识点: nAutoMapper nAutofacn以及上篇博文中 Data 层未详细介绍的 WebActivatorEx nAutoMapper有时候,你需要将一种类型转换为另外一种类型,这种情况在mvc 项目中较为常见,
VM虚拟机桥接实现VM和实体机通信的三种方法
VM与实体机通信的三种方式
(六)泛型-泛型应用之不同实体间同名属性的自动赋值-BeanUtils 的使用
package beanconvert;nnpublic class UserInfoEntity {n private String userName;n private String passWord;n private int age;nnn public UserInfoEntity(){nn }nn public UserInfoEntity(Stri...
通过fastjson返回顺序的dto实体属性
最近遇到。。。nn1.正常情况是按照字母顺序排序n2.fastjson排序
entity、dto、vo理解
ENTITYrn持久化,与数据库对应;rnDTOrn系统、服务之间交互传输用;rnVOrn前台(APP\WAP\PC)展示用;rn作用说明:rn1、DTO可以增加或者减少entity的字段,来灵活实现信息传递;rn2、VO可以仅向前端传输,页面需展示字段,避免F12信息泄露;
VO DTO 实体类的区别 java
java简单基础 需要的了解一下 我们大家还是有必要去区分的
hibernate 本地查询 字段别名 映射到 DTO时注意事项
rn本地原生SQL:rnSELECT pole.pId as poleId FROM lamppole pole LEFT JOIN grouppole gp ON pole.pId = gp.pIdrn rnQuery:rnQuery q = getSession().createSQLQuery(sql2.toString()).addScalar("poleId")rn .setResu...
对象、引用、对象实体
例如:Hern hern = new Hern();nnHern:类名称nnhern:对象名称nnnew Hern():对象的实体nn引用只是存放一个对象的内存地址,并非存放一个对象,严格地说引用和对象是不同的,但是可以将这种区别忽略,可以简单的说hern是Hern类的一个对象,而事实上应该是hern包含Hern对象的一个引用。nn对象的使用:nn当用户使用new操作符创建一个对象后,可以使用“对...
实体、对象与类的概念
面向对象系列n什么是实体? n指客观世界存在的某个事物n如何描述实体? n通过对实体进行抽象,来描述实体n如何抽象描述实体 n每个实体都有其特征和功能,特征和功能通称为属性 n实体与实体的不同在于属性的不同 n所谓抽象描述实体是指: n从实体中抽取出若干特征和功能,来表示实体 n特征指实体的静态属性,功能指实体的动态属性n对实体加以抽象要注意下面两点: n移出细节看主干n不是借助具体形象反映现
数据实体转换工具类
package com.sf.framework.utils;import java.util.Collection;nimport java.util.List;import org.springframework.beans.BeanUtils;import com.google.common.base.Function;nimport com.google.common.base.Option
DTO和POJO实体类之间值映射
package cn.test.util;nnimport java.lang.reflect.Method;nimport java.util.List;nnpublic class AutoMappern{n n public static void mapping(TSource source,TDestination destination)n {n Method[] srcMetho
hibernate实体类状态之间转换
1 实体类(持久化类)状态有三种rn(1)区别标准:rn* 判断实体类对象里面是否有id值rn* 判断实体类对象是否与session对象有关联rnrn2 具体实体类状态有哪些?rn第一种 瞬时态rn(1)实体类对象里面 没有 id值,和session 没有 关联rn第二种 持久态rn(1)实体类对象里面 有 id值,和session 有 关联rn第三种 托管态rn(1)实体类对象里面 有 id值,
实体(Entity)和模型(Model)
学习了三层架构之后,就是七层登录。在了解概念和逻辑的过程中,发现有的人说到了实体(Entity),还有的人说的是模型(Model)。我不明白这两者是什么区别,于是,有了这篇博客。nnnn实体(Entity)nn维基百科描述到: n实体(Entity)是有可区别性且独立存在的某种事物,但它不需要是物质上的存在。尤其是抽象和法律拟制也通常被视为实体。nn可见,实体就是软件系统中的研究对象。 n比如:学...
ABP—对象之间的映射
前言nn什么是对应之间的映射?nn两个实体中只有一个实体指向另一个实体(知道该关系的存在),而另一实体没有指向这个实体(另一实体不知道该关系的存在)nn举个很简单的例子:两个对象(类)具有相似或相同的属性,它们之间要互相映射,其实这项工作重复且无聊的工作nn比如我们的Person对象 和 一个和它很相似的 TestPersonDto对象nnn [Table("Person")]n pu...
动态生成bean实体
最近工作中需要和前端同事配合,将传来的数据动态组装成dto实体,故可以用cglib动态代理来实现。rnpublic class BeanDto {nn public Object object = null;nn public BeanMap beanMap = null;nn public BeanDto() {n super();n }nn publ
我们在做自定义dto 实体类返回的时候,以特定的格式返回给前端问题
由于本人在使用springboot整合mybatis 模拟项目的时候,自定义返回的实体类,本以为大写开头的,结果在controller层返回给前端,接收的时候却变成了小写开头。解决方法是使用jackson的注解。如下:rn1)在自定义实体类的所有的属性前加:rnrn@JsonProperty("对应的每个的属性值")rnrn2)在所有属性的getter setter 上加:rnrn@JsonIgn
javaweb实现自动将前端的属性值(HttpServletRequest)转化为后台对应的实体类
通常我们在后台需要获取前端的属性值的时候用到的是request.getParameter("xxx");n下面的方法将实现自动将HttpServletRequest中的值封装到实体类中,需要一定的Java反射技术。nn要求:前端form表单中的input标签中name的值是实体类中的属性。这样才能被识别到。nn例如:n在JSP中使用如下input:nage" value=""/>在P
java中Json,Map,实体之间的转换
/**  n * @Title: JsonUtil.javan * @Package rongtai.scanpay.tcp.utiln * @Description: TODOn * @author caowein * @date 2015年11月20日n */nnnimport java.lang.reflect.Field;nimport java.lang.reflec
在开发中实体类的field要用包装类型还是用基本类型的一点思考
在开发中如果用到or mapping的时候最好实体类中的属性要用包装类型,如果在使用Hibernate做映射的时候如果使用基本类型做映射,那么数据库的对应字段一定要设置成 not null 因为,如果使用基本类型那个而且数据库中有为null值的数据时使用会报错。
AutoMapper 复杂实体映射
实体映射   rnvar list = new List();rn            using (dataContext = new EPDbContext())rn            {rn                list = dataContext.tb_article.Take(10).ToList();rn            }rn            AutoMa
自己实现的Android中将任意实体类(Entity、vo、dto、Model)对象(object)转为Json字符串的一个类
自己实现的一个Android中将任意实体类对象转为Json的工具类。适用于Android开发。
实体以及实体型和实体集
实体(Entity) rn客观存在并可相互区别的事物称为实体。rn可以是具体的人、事、物或抽象的概念。rn属性(Attribute)rnrn实体所具有的某一特性称为属性。rn一个实体可以由若干个属性来刻画。  rn实体型(Entity Type)rn用实体名及其属性名集合来抽象和刻画同类实体称为rn实体型rn实体集(Entity Set)rn同一类型实体的集合称为实体集
JdbcTemplate帮助类-行记录转换成Dto
package com.achievo.ems.web.util;rnrnimport java.lang.reflect.Constructor;rnimport java.lang.reflect.Field;rnimport java.lang.reflect.InvocationTargetException;rnimport java.lang.reflect.Method;rnimpo...
abp新建实体
1)在core层新建对象在类名上使用 [Table("表名")]继承Entity<long> 或继承FullAuditedEntity<long>nn2)在字段上如果不能为null则加require标示nn3)字段长度应加maxlength(number值)标示nn4)主键加primary 外键  标示nn5)在ef项目下ef文件夹下xxDbContext下进行注册nn p...
mybatis解决数字库字段名和实体类字段不一致的方法
mybatis遇到的问题:数据库命名一般以下划线区分出来两个单词,但Java的实体类我们习惯用驼峰命名法,这就导致了表的字段和实体类中的参数对不上,mybatis则不能完成字段的映射。mybatis提供了一种解决办法:resultMap可以在mapper文件的头部增加以下示例代码:<resultMap id="BaseResultMap" type="com.xinchen.pojo.Adm...
vo和dto拓展实体
vo和dto拓展实体n好像只能用两表连接,多表还没尝试,太多字段混合在一起不好,或者是用new的形式来引入吧,有待了解n编写dto步骤nnn写好sqlnnn写好dto实体n1) 如果dto为参数nn映射文件不用写dto对象类型nn2) 如果dto为返回值nn映射文件要写dto对象类型nnnn写映射文件nnndao——service——serviceImplnncontrollernnnnjfina...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 问什么学习java 云计算有什么课程

相似问题

0
DataList控件绑定后为什么不显示?
0
RFID中随机二进制树的吞吐量怎么求啊
2
求一个c#的ftp 上传下载删除的程序源码
2
c#学生成绩管理系统,成绩录入的子窗口调试后显示'.' 附近有语法错误。求帮忙呀,万分感谢!
1
C#中comboBox控件 comboBoxCity.Text获取值与实际选中值不同
2
根据信息的多少加载用户控件到FlowLayoutPanel,如何标识(区别)每个用户控件的不同呢。
2
C#怎么获取网络接口?url写什么?token怎么验证?有点急。。。
1
有没有用C#编写的弹琴或者停车位小游戏的源码?开发环境是V2008,跪求各位大神
2
求大佬们帮忙,有谁会用C#语言在Monogame上做一个小的游戏,无论是那么游戏都可以
0
C# WindowsForm求问, 2个模拟USB键盘的 ID 读卡器如何判断是哪个输入?
1
c语言编程问题求大神解答!
2
求大佬解答,关于C#中return 的用法
1
有大佬看看这个代码怎么写吗!!
5
C#小白求问,为什么不让我把 .value赋值给我的二维数组呢?
2
请教c#中使用automapper将匿名类映射到DTO遇到的问题。
2
小白,关于GridView如何显示不同表里不同行的数据。
1
执行一段后台代码后弹出JS确认框,再根据确认框结果,继续执行不同的后台代码!!!!!
4
MySQL里有两个一样的表,可以用同一个实体类吗?
1
c# 在命令行中输入任意10个字符串,根据字符串类型将输入的数据放入到不同数组中,最后将数组进行排序
1
AddRange用不了,是缺少什么引用集吗