想必找到这篇文章的博客们,在为 do dto vo 他们之间的关系发愁吧!
下面我给大家分析一波
简而言之,在我们Java开发的时候,定义类的名称也是非常重要的哈~
概念:
VO:视图对象,对应页面(html)上需要显示的数据(表单),主要用于给前端返回页面参数使用
DO:数据对象,对应数据库中存储的数据(数据库表),主要用于数据库层传递
DTO:数据传输对象,主要用于外部接口参数传递封装,接口与接口进行传递使用
DTO转DO:接口接收参数将参数转化为数据库实体操作数据库使用
DO转DTO:将数据库层实体转化为DTO返回给客户端
1、pojo 里的每一个字段,与数据库相对应,
2、vo 里的每一个字段,是和你前台 html 页面相对应,
3、dto 这是用来转换从 pojo 到 vo,或者从 vo 到 pojo 的中间的东西 。(DTO中拥有的字段应该是pojo中或者是vo中的一个子集)
举个例子:
你的html页面上有三个字段,name,pass,score
你的数据库表里,有两个字段,name,pass , 注意没有 score。
而你的 vo 里,就应该有下面三个成员变量 ,因为对应 html 页面上三个字段 。
private string name;
private string pass;
private Integer score;
这个时候,你的 pojo 里,就应该有两个成员变量 ,因为对应数据库表中的 2 个字段 。
private string name;
private string pass;
到了这里,好了,业务经理让你做这样一个业务“分数大于 60 的才能存入数据库,这个时候,你就要用到 dto 了,
1)你要先从页面上拿到 vo,然后判断 vo 中的 score 是不是大于 60。
2)如果大于 60,就把 vo 中的 name 和 pass 拿出来,放到 dto 中。
3)然后在把 dto 中的 name 和 pass 原封不动的给 pojo,然后根据 pojo 的值,在传入数据库。
这就是他们三个的区别。
PS: dto 和 pojo 里面的字段应该是一样的,dto 只是 pojo 到 vo,或者 vo 到 pojo 的中间过程,如果没有这个过程,你仍然可以做到增删改查,这是根据具体公司规范来的。
pojo 也可以是entity 这是根据公司的规范来的,这里我是用之前的。