Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和区别分析

@[TOC]Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和区别分析

前言

前言
做开发项目时,总会遇到这些包,理清他们的层次,非常有助于我们对于项目的理解和建立。

现阶段CSDN上貌似没有很系统,很详细的关于层级类的解释。因此总结了一下自己的经验和思考,也算是小小的回馈一下一直帮助自己的CSDN。。

工具类层
Util
util = 工具

顾明思义,util层就是存放工具类的地方,对于一些独立性很高的小功能,或重复性很高的代码片段,可以提取出来放到Util层中。

数据层
POJO对象
POJO = plain ordinary Java object = 普通Java对象

PO:持久对象,与数据库中的表相映射的Java对象

VO:业务层之间数据传递的对象

POJO:简单无规则Java对象,只有属性+get+set方法

下面要讲的这几个包,本质上都是POJO类

domain
domain = 域

域是一个大范围,如简历域包括工作经验表、项目经验表、简历基本信息表。 在domain包中,就可以定义一个大的简历对象,将三个表的内容整合在一个对象中,作为整体操作。

entity
entity = 实体

严格和数据库相对应,数据库中有什么字段,entity包中的类就有什么字段。因此当操作表时,操作这个类即可。

比如user表中有name、id、age,则entity包中对应的同名类也只有这三个同名属性。

model
Model = 模型

当用model当包名时,一般里面存的是实体类的模型,是用来给后端用的。

比如user表中有name、id、age,出于安全原因,我们需要把用户的密码定义在另一表中,即user_passwd表,但进行相关操作时,我们往往需要将两个表关联使用,每次定义都很麻烦。

因此可以在model层中定义user_model类,将user表中的信息与user_passwd表中的信息整合成一张综合表,这样在进行操作时只需调用综合表,就可以完成对两个表的关联操作

view
view = 视图

当用view当包名时,一般里面存放的是对实体表的映射类(视图类),是用来给前端用的。

即:有时候我们仅仅需要获得某一个表的几个字段,所以此时可以用view存储这几个字段。

比如user表中有name、id、age,出于某些原因,我们只需要向用户展示name和id值,但进行相关操作时,我们往往需要对user表进行很复杂读处理,每次定义都很麻烦。

因此可以在view层中定义user_view类,将user表中的name、id存入user_view视图,这样在进行操作时只需调用视图表,就可以完成相对应的操作

DTO
DTO = Data Transfer Object = 数据传输对象,与view的用法相同,不过是叫法不同

总结
如果想对几个表综合操作,就用domain

如果是严格对数据库表操作,就用entity

如果想显示某个几个表的综合信息,就用model,注意model包一般放在service层。 在这里插入图片描述

如果只想展示某个表中的几段信息,就用view,注意view包一般放在controller层 在这里插入图片描述

上述包中的类都属于POJO类。

数据访问层
DAO
主要针对于数据表的操作,可以理解为一张数据表,就有一个DAO与之对应,与数据库的操作,增删改查等方法

举例:对于user类,其对应的dao包就是对user表中数据的增删改查方法。

mapper
mapper层 = dao层,若使用mybatis框架,则其生成的类名字是mapper,其实就是dao层。

业务层
service
由于Dao里面存放了对表操作的方法,entity类中存放了映射表的POJO类。

Service的作用就是将Dao和entity类整合起来,进行再次封装,封装成一个方法,我们调用这个方法,就实现了对某个表的增删改查操作。

控制层
Controller
负责请求转发,接受页面传递过来的参数,根据参数的不同,是调用不同的Service层方法进行操作,操作完成后将返回结果传递给页面。

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值