当前位置: 代码迷 >> 综合 >> java中常用的对象(POJO PO DTO BO)
  详细解决方案

java中常用的对象(POJO PO DTO BO)

热度:104   发布时间:2023-10-27 16:45:13.0

Java里面,我们会经常遇到POJO、PO、DTO、BO等对象,现在来梳理一下这几个的含义。

POJO(plain old java object),普通的java对象,有别于特殊的java对象(含继承约束等)和EJB。POJO一般只有一系列的属性和相应的get、set方法。 

PO(persistant object):持久化对象,有别于POJO,必须对应数据库中的实体。一个PO对应数据库的一条记录。持久化对象的生命周期与数据库密切相关,只能存在于connection之中,连接关闭后,PO就消失了。

DTO(data transfer object):数据传输对象,作用仅在于在应用程序的各个子系统间传输数据,在表现层展示。与POJO对应一个数据库实体不同,DTO并不对应一个实体,可能仅存储实体的部分属性或加入符合传输需求的其他的属性。比如要在执行插入操作时,可能只是部分数据插入,那就要先将DTO转换为PO,然后由PO通过mybatis的查询插件去执行,得到PO的结果。 

DAO(data access object):数据访问对象。提供访问数据库的抽象接口,或者持久化机制,而不暴露数据库的内部详细信息。DAO提供从程序调用到持久层的匹配。

BO(business object):业务对象。主要是将业务逻辑封装为一个对象,该对象可以包含一个或多个其他对象。

PO 体现了数据存储的结构,当相关接口所需数据恒等于 PO 时,可以放弃DTO,但这种情况很少。 通常会是只传输PO的一部分,或者是多个PO的结合体。DTO 的意义是减少调用次数,尽量传递多的数据。这个在分布式应用较多

实现DTO最简单的方法是将服务端的域对象(比如myb中的PO、EJB中的实体Bean)进行拷贝然后作为DTO传递。采用域对象做DTO比较简单和清晰,因为DTO与域模型一致,所以了解一个结构就够了。这样做也免去了DTO的设计,使得开发工作变得更快。

  相关解决方案