• pojo指简单的Java对象 是实体类Entity和 值对象VO 还有DTO数据传输对象的统称
  • Entity实体类,通常和对应的表字段的数量是一致的
  • DTO数据传输对象, 当客户端给服务器传递参数时,参数的数量可能比实体类中的数量要少,比如实体类中有10个参数 但是客户端只传递过来的3个参数,此时通过DTO接收传递过来的参数,如果使用实体类接收也可以但是会存在很多的null值,使用DTO好处是只要发现null值就能判断出传输出错了
  • VO值对象, 从数据库中的某个表查询数据,有多种场景,有的需要查全部,而有的查询只需要查一部分数据,如果只查一部分数据查询回来的数据直接用Entity接收封装的话,则Entity中会存在大量的null值, 这些null值传输给客户端也会占用流量,浪费资源,使用VO则可以解决此问题

POJO类的规范:

  • 所有属性应该是私有的
  • 所有属性都应该有对应的Setter,Getter方法
  • 应该生成基于所有属性的hashcode()方法、equals()方法
    • 需要保证:如果两个对象的类型相同,且所有属性值相同,则hashcode()返回相同的结果,且equals对比结果为true,否则,hashcode()返回不同结果,且equals对比结果为false
  • 应该实现Serializable接口
    • 可以不关心是否生成序列化版本ID