DO、BO、DTO、VO和POJO是Java开发中常用的几个概念。它们是用来描述不同层之间数据传输的数据模型,可以根据具体的业务场景选择合适的模型。
概念
首先定义一个DO类,用来映射数据库中的实体:
再定义一个BO类,用来封装业务逻辑:
接下来定义一个DTO类,用来传输数据:
再定义一个VO类,用来展示数据:
最后,定义一个POJO类:
-
DO(Data Object)是一个与数据库表结构对应的对象,也叫持久化对象。DO用来在DAO层和数据库进行交互,也可以在其他层使用,比如作为方法的参数或返回值。
-
BO(Business Object)是一个封装业务逻辑的对象。BO用来在Service层处理业务规则,比如校验、计算、转换等。BO可以包含一个或多个DO对象的信息,也可以不包含DO对象的信息。
-
DTO(Data Transfer Object)是一个用来传输数据的对象。DTO用来在不同层或不同系统之间传递数据,比如从Service层传递到Controller层或View层。DTO可以包含与视图相关的信息,也可以包含与业务相关的信息。
-
VO(View Object)是一个用来展示数据的对象。VO用来在View层表示视图模型,比如JSP、HTML等。VO可以包含与视图相关的信息,比如页面展示的数据、页面需要的样式等
-
POJO(Plain Ordinary Java Object)是一个普通的Java对象,它没有任何特殊的要求或约束,可以用来表示任何类型的数据。POJO通常是其他数据模型的基础,比如DO、DTO、BO、VO等。
-
应用
假设我们有一个用户管理系统,其中包含以下实体类:
-
UserDO:表示数据库中用户表的数据对象。
-
UserBO:表示业务对象,用于在service层中封装用户相关的业务逻辑,可以包含多个DO对象。
-
UserDTO:表示数据传输对象,用于在service和controller层之间传输数据。
-
UserVO:表示视图对象,用于在controller层向前端页面展示数据。
-
User:表示POJO对象,用于在不同层之间转换数据。
接下来演示如何在dao、service、controller层中使用。
DAO层
Service层
Controller层: