美文网首页
DTO,DAO和DO,VO的关系

DTO,DAO和DO,VO的关系

作者: 忧郁的老王 | 来源:发表于2023-02-21 16:28 被阅读0次

    DTO:数据传输对象,主要用于外部接口参数传递封装,接口与接口进行传递使用。

    DAO:(Data Access Object),数据访问对象,与数据库做交互的对象,提供不同的接口访问数据库来实现对数据库的操作,而接口使用的数据交互通常就是PO或者DO,通过它可以使用面向对象的方式来与数据库交互。
    VO:视图对象,主要用于给前端返回页面参数使用。

    DO:数据对象,主要用于数据库层传递。

    DTO转DO:接口接收参数将参数转化为数据库实体操作数据库使用。

    DO转DTO:将数据库层实体转化为DTO返回给客户端。

    1、entity 里的每一个字段,与数据库相对应,
    2、vo 里的每一个字段,是和你前台 html 页面相对应,
    3、dto 这是用来转换从 entity 到 vo,或者从 vo 到 entity 的中间的东西 。(DTO中拥有的字段应该是entity中或者是vo中的一个子集)
    举个例子:
    你的html页面上有三个字段,name,pass,age
    你的数据库表里,有两个字段,name,pass , 注意没有 age。
    而你的 vo 里,就应该有下面三个成员变量 ,因为对应 html 页面上三个字段 。

    private string name;

    private string pass;

    private string age;
    这个时候,你的 entity 里,就应该有两个成员变量 ,因为对应数据库表中的 2 个字段 。

    private string name;

    private string pass;
    到了这里,好了,业务经理让你做这样一个业务“年龄大于 20 的才能存入数据库,这个时候,你就要用到 dto 了,

    1)你要先从页面上拿到 vo,然后判断 vo 中的 age 是不是大于 20。

    2)如果大于 20,就把 vo 中的 name 和 pass 拿出来,放到 dto 中。

    3)然后在把 dto 中的 name 和 pass 原封不动的给 entity,然后根据 entity 的值,在传入数据库。

    这就是他们三个的区别。

    PS: dto 和 entity 里面的字段应该是一样的,dto 只是 entity 到 vo,或者 vo 到 entity 的中间过程,如果没有这个过程,你仍然可以做到增删改查,这是根据具体公司规范来的 。

    相关文章

      网友评论

          本文标题:DTO,DAO和DO,VO的关系

          本文链接:https://www.haomeiwen.com/subject/fdxskdtx.html