pojo层、dao层、service层、controller层的作用

发布时间 2023-11-09 09:43:44作者: DawnTraveler

分层解耦介绍

1.pojo层(model)

实体层 数据库在项目中的类
model是模型的意思,与entity、domain、pojo类似,是存放实体的类。
类中定义了多个类属性,并与数据库表的字段保持一致,一张表对应一个model类。
主要用于定义与数据库对象应的属性,提供get/set方法,tostring方法,有参无参构造函数。

2.dao层(mapper)

持久层,主要与数据库进行交互
又被成为mapper层,叫数据持久层,先设计接口,然后在配置文件中进行配置其实现的关联。
dao层会调用pojo层,dao中会定义实际使用到的方法,比如增删改查。
dao层的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。
dao层的数据源和数据库连接的参数都是在配置文件中进行配置的,配置文件一般在同层的xml文件夹中
数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中

3.service层(定义接口)

业务层,控制业务,Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务
service层调用dao层接口,接收dao层返回的数据,完成项目的基本功能设计。
完成功能的设计和dao层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。
service的impl是把mapper和service进行整合的文件 封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。

4.controller层(处理前台发送的请求)

控制层 控制业务逻辑
controller层负责具体的业务模块流程的控制,controller层负责前后端交互,接受前端请求,调用service层,接收service层返回的数据,最后返回具体的页面和数据到客户端。

5.业务逻辑

    controller-->service接口-->serviceImpl-->dao接口-->mapper.xml-->db
    在具体的项目中,其流程为:Controller层调用Service层的方法,Service层调用Dao层中的方法,其中调用的参数是使用Pojo层进行传递的。总的来说这样每层做什么的分类只是为了使业务逻辑更加清晰,写代码更加方便,所以有时候也需要根据具体情况来,但是大体的都是这样处理的,因为它其实就是提供一种规则,让你把相同类型的代码放在一起,这样就形成了层次,从而达到分层解耦、复用、便于测试和维护的目的。

原文链接:pojo层、dao层、service层、controller层的作用