Java中 PO/POJO/VO/BO/DAO/DTO 的一些解释

写在前面

关于这些Java术语的理解与解释,有什么不对的欢迎各位小伙伴指正。接下来以一个最简单的JavaWeb项目流程为基底,简要说明这些Java术语在哪里用到。
在最简单的JavaWeb项目中,以一次请求为例。前端发请求给Controller,Controller调用封装好的Service,Service调用封装好的Dao,上述调用完成后依次返回,Controller将处理好的数据发给前端模板进行展示。

稍微详细的解释

程序处理的流程是从前端发请求开始,依次调用,最底层是Dao,然后依次返回,到前端结束。我们就逆序开始,从调用的最底层Dao开始

  • Service --> Dao
    这一过程中涉及到的Java术语有 PO、POJO、DAO

    • DAO:(data access object), DAO是直接与数据库进行交互的部分,所有的数据库增删改查方法都被封装在DAO中
    • PO:(persistant object),PO是ORM框架下的产物,得益于ORM,我们可以封装直接与数据库交互的细节,从而简单的以对象为单位进行增删该查
    • POJO:(plain ordinary java object),POJO一般是PO的一个子集,这样说的原因是POJO一般是一个JavaBean对象,一个POJO仅包含数据库中一个表的所有字段及对应的get、set方法
  • Controller --> Service
    这一过程中涉及到的Java术语有BO、DTO

    • BO(business object),BO可以理解为一个封装好业务逻辑的对象,比如:UserService
    • DTO(Data Transfer Object),DTO在各个层之间传递数据,可以理解为PO的一个子集,为何是一个子集?假设POJO中有10个字段,而前端模板只需要5个字段,当Service进行数据处理时,只将需要的5个字段封装成PO传递给Controller即可,这里的PO就是DTO,也是完整PO的子集了
  • 前端请求–> Controller
    这一过程中涉及到的Java术语有VO,DTO(不再解释)

    • VO(value object/view object),要传到模板里进行数据填充阶段,就叫VO

总结

  • PO、POJO、DTO、VO 都是对数据库一条记录的映射或部分映射,因为在不同的阶段,就有不同的名字
  • 结合具体的场景,应该还是比较好理解的
  • 最后,理解上有什么问题,欢迎大佬批评指正
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值