Pojo层,Dao层,Mapper层,Service层,Controller层

目录

Pojo层(model层):

Dao层(mapper):

Service层(定义接口):

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

util层(工具类):

VO层(方便前端获取数据):

Filter层(对用户请求的预处理):

业务逻辑:


Pojo层(model层):

  • 实体层 数据库在项目中的类
  • model是模型的意思,与entity、domain、pojo类似,是存放实体的类。
  • 类中定义了多个类属性,并与数据库表的字段保持一致,一张表对应一个model类。
  • 主要用于定义与数据库对象应的属性,提供get/set方法,tostring方法,有参无参构造函数。
     
  • 其实就是实体类这一层,它是与数据库中的属性值基本保持一致的。
  • 有的时候有些人开发写成pojo,有的写成model,也有domain,也有dto等,
  • 实体类如果你不懂什么东西的话,那你就想成是它是范围。

Dao层(mapper):

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

  • DAO层叫数据访问层,也叫mapper层 。
  • 某个DAO一定是和数据库的某一张表一一对应的,
  • 其中封装了CRUD(增加Create、检索Retrieve、更新Update和删除Delete)基本操作,DAO只做原子操作
  • 无论多么复杂的查询,Dao只是封装增删改查。
  • 至于增删查改如何去实现一个功能,Dao是不管的。
     

Service层(定义接口):

  • 业务层,控制业务,Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务
  • service层调用dao层接口,接收dao层返回的数据,完成项目的基本功能设计。
  • 完成功能的设计和dao层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。
  • service的impl是把mapper和service进行整合的文件 封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。
     
  • Service层叫业务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,
  • 封装成一个服务,所以这里也就不会是一个原子操作了,它需要事物控制。
  • 管理具体的功能等!
  • service包含了serviceImpl(service接口的实现类) 是提供给controller 使用的,
  • 针对于某些业务将 Dao 的对于某些表的crud进行组合,也就是说间接的和数据库打交道。
     

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

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

  • Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。
  • 管理业务(Service)调度和管理跳转的。

util层(工具类):

  • 工具类,它是用来封装相应的方法,然后将其放在对应的util包下,使用的时候直接调用就可以了。
  • 比如,日期转换util,http请求等相关的工具类。获取properties文件属性等等都可能会被放进util

VO层(方便前端获取数据):

  • vo层的存在就是方便前端获取数据,后端将前端的需要的数据做一个整合,打包成一个类。

Filter层(对用户请求的预处理):

  • Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。

业务逻辑:

        controller - - > service接口 - - > serviceImpl - - >dao接口 - - > mapper.xml - - > db

在具体的项目当中,其实它的流程为:

 

  1. 首先Controller层调用了Service层的方法,
  2. 然后Service层调用Dao层中的方法,其中调用的参数是使用Pojo层进行传递的。

  • 总的来说这样每层做什么的分类只是为了让业务逻辑更加清晰明了,写起代码更加方便高效,
  • 所以有时候也需要根据具体情况来作为依据,
  • 但是大体的都是这样处理的,因为它其实就是提供一种规则,让你把相同类型的代码放在一起,这样就形成了一个层次,
  • 从而达到分层解耦、复用、便于测试和维护的目的。
     

service分别是什么,并且它们之间的关系是怎样的? 在Java开发中,pojo是指存放实体类的模型,其中定义了与数据库表字段一致的类属性,提供了get/set方法、toString方法以及构造函数。每个数据库表对应一个pojo类。 dao是数据持久,负责与数据库进行交互的任务封装。在dao中,首先设计了接口,然后在配置文件中进行接口的实现。dao的作用是访问数据库,执行SQL语句完成对数据的增删改查操作。数据持久化操作将数据存放到持久化介质中,比如将数据通过Hibernate插入到数据库中。 service是业务逻辑,负责完成具体的业务功能设计。与dao类似,首先设计了接口,然后创建实现类,并在配置文件中进行接口与实现类的关联。service可以调用dao的接口来处理业务逻辑的应用。service的实现文件封装了mapperservice的整合。封装service的业务逻辑有利于业务逻辑的独立性和重复利用性。 这三个之间的关系是,controller控制整个业务流程,调用service的接口来处理具体的业务逻辑。service则调用dao的接口来访问数据库执行相关操作。这样的设计可以将业务逻辑的处理和数据访问进行分离,提高代码的可维护性和可测试性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [pojodaoservice的关系](https://blog.csdn.net/kanzhu0370/article/details/117838691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [SpringBoot 中 pojo Dao service controller的作用](https://blog.csdn.net/weixin_51051633/article/details/123330620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值