Java工程中各种带有O的对象分类笔记

在Java工程里面,我们总会碰到各种不同的带有O的对象,

**对于一个小白来说,经常会混淆这些对象的使用场景,所以在这里mark一下,让自己的代码更加规范,**但这个也是Java被诟病的地方,不同的业务需要给它写各种各样的映射类。

**PO:persistent object,持久对象。**与数据库里表中的字段对应。PO是一些属性,以及set和get方法组成(使用强大的lombok插件更加方便)。一般情况下,一个表,对应一个PO。

**VO:vlue object,又名:表现层对象,同时也可以认为是view object。**用于业务层之间的数据传递,和PO一样也是仅仅包含数据。根据业务的需要,业务需要哪些字段,抽象出来的业务对象。对于页面上要展示字段,可以封装一个VO,将所需数据封装进去传给前端。

**BO:bussiness object,业务对象。**封装业务逻辑的 java 对象 , 通过调用 DAO 方法 , 结合 PO,VO 进行业务操作。 一个BO对象可以包括多个PO对象。譬如我们很多业务是需要进行连表操作的,那么这个业务所需要的字段可以封装成一个BO,这个BO又包含有多个PO所属的字段。

**DAO:data access object,数据访问对象。**此对象用于访问数据库。DAO 中包含了各种数据库的操作方法。通过它的方法 , 结合 PO 对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。

**DTO:data trasfer object,数据传输对象。**主要用于远程调用等需要大量传输对象的地方,这个DTO对应上面所说的VO,对于后端来说是DTO,前端页面来说是VO。

POJO:plain ordinary java object) 简单无规则 java 对象 ,纯的传统意义的 java 对象。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO之dozer mapper使用

PO(persistantobject)持久对象在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记

Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念

PO(persistantobject)持久对象在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记

Java工程中各种带有O的对象分类笔记 - HelloWorld