VO与Model、pojo的区别

本文介绍了Java中常见的实体类类型,如Vo、Model和Pojo,强调它们在数据传输和处理中的角色。Vo(值对象)常用于接口数据中转,Model在MVC中代表模型层,接收前端参数。Pojo是简单的Java对象,适用于各种数据转换。这些类不直接对应数据库表,而是方便程序员操作和数据传输。文章还探讨了不同类型的优点,如提高可读性和防止数据污染。
摘要由CSDN通过智能技术生成

目录

统一概念

结构

Vo类:

Model类:


  • 统一概念

  说在前面,不管是Vo还是pojo、model类,他们都是Java描述实体的一种方式类,他们的功能都是用于数据传输、数据处理,他们实际上不是一个存在于数据库表中的结构,只是在数据调用的时候,方便程序员标识标记数据的一种方法,直接操作他并不会改变数据库或其他物理结构,比如一个接口:传递了model的一个属性参数,这时候没有改变其物理地址,其底层是由指针指向相应的内存地址,直到他的下一层,ORM持久化的时候才会改变,也就是常说的写操作。我们只要知道他是方便了数据传输,内核创建的方法使用一样的,只是适用于多种不同场景罢了,就很好理解啦。

  • 结构

  • Vo类:

  •  值对象,例如在接口updateuser(int uid)的实现类时候,可以使用Vo的实体类来作为中转,接收处理过的数据,例如修改完其中一个属性,

UserVo user = new UserVo();
       user.setSex("11");
       user.setName("zhuxuewen");
       Map<String,String> map = ObjectUtil.objectToMap(user);

    Model类:

ModelMVC中是模型层,他的作用是接收前端的参数,所以它的属性一般是前端传进来的参数,可以使用一般的实体类,只不过字段或类型有所区别,另一种写法可以是一个接口,参数不变,省略了方法,将参数使用@BeanField放入一个区域并且相互关联起来,形成虚表,将参数的get\set方法作为bean注入到bean中。如下写法

package org.easyboot.entity.address;



import org.easyboot.core.annotation.bean.BeanField;

import org.easyboot.core.annotation.bean.BeanFields;

import org.easyboot.core.annotation.bean.BeanGetter;

import org.easyboot.core.annotation.bean.BeanSetter;


@BeanFields({

      // 姓名 

      @BeanField(key = "name", type = String.class),

     })

public interface User{

   /**

    * 获取 姓名

    */

   @BeanGetter

   String getName ();



   @BeanSetter

   void setName (CharSequence name);

好处:这样写法的优点是,将数据与物理表结构分离开来,操作的时候交给了工厂代理,使用的时候只需要反射模式调用类,就能传递数,方便了程序员的可读性,一定意义上也防止了数据污染。

        3、Pojo: 简单无规则java对象,一般是作为包名放entity等,他是一个大概念

纯的传统意义的java对象,最基本的Java Bean只有属性加上属性的getset方法、可以转化为PODTOVO;比如POJO在传输过程中就是DTO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值