员工管理系统服务器,员工管理系统小结 - 四七的个人空间 - OSCHINA - 中文开源技术交流社区...

练习中出现 DAO层 、 Service层 、 Controler层 、entity 层、utils 层、mapper 层

想知道几个之间的关系是如何?

分层的目的是:高内聚、低耦合

DAO层(接口)

也叫数据访问层,做的是数据持久层的工作,负责与数据库进行联络的任务都封装于此。在 Spring中的配置文件里可有定义此接口的实现类。然后在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,凸显了结构的清晰,DAO层的数据源配置,以及和数据库有关的参数都在 Spring 的配置文件中进行配置。

DAO层的设计是设计DAO的接口。它只负责对数据进行访问,不会去管其他的业务逻辑。只干活,不知道为什么干活。可具体到某一张表进行增删改查,一定是与某张表一一对应。封装了增删改查基本操作。建议只增删改查,原子操作。

DAO 层为上层 Service 层提供接口。如果是查询,返回对象;如果是增删改,可以只返回boolean 表明失败还是成功即可。

mapper层=dao层,现在用mybatis逆向工程生成的mapper层,其实就是dao层。对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,而service层是针对我们controller,也就是针对我们使用者。

(多说一句,数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中。)

Service层

业务逻辑层,向上层 Controller 层提供接口,并且使用 DAO 层提供的接口。同样首先设计接口,再设计其实现的类。接着在 Spring 的配置文件中配置其实现的关联。这样就可以在调用 Service 接口来进行业务处理。Service 层业务实现,具体要调用已定义的 DAO 层接口。如果客户业务有变动,那么我们只需要在 Service 层进行一些变动就可以,利用了业务逻辑独立性和重复利用性。

粗略理解对一个或者多个 DAO 进行再次封装,封装成一个服务,这里不是原子操作,需要事务控制。

PS:Service 是将 dao 层的增删改查基本操作调用过来,封装到 service 类中,集成一个服务。

存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层,mapper层是直接跟数据库打交道的,他也是个接口,只有方法名字,具体实现在mapper.xml文件里,service是供我们使用的方法。

在实际开发中的Service层可能被处理为实体Service层,而不是接口,业务逻辑直接写在Service(Class,不是Interface)层中,Controller直接调用Service,Service调用Mapper。

当然了,Service之间也是可以互相调用! service的 impl 是把 mapper 和 service 进行整合的文件。

Controller 层

Controller 层负责具体业务模块-流程的控制。在此层里需要调用 Service 层来控制业务流程。控制的配置也同样在 Spring 的配置文件里进行。针对具体的业务流程,会有不同的控制器。我们具体设计时,可以将流程进行抽象归纳,设计出可以重复利用的子单元,使得程序结构清晰。

Controller 层管理用户的操作,负责请求转发。用户界面传过来的请求。通过前端传过来的参数进行业务操作,调用对应的服务(Service),再返回一个指定的路径或者数据表给页面,完成用户请求的处理。

控制业务逻辑不是业务逻辑的实现,而仅仅是一个大的模块,你看到之后,知道它实现了这个业务逻辑,但是怎么实现的,不需要关心,仅仅需要调用service层里的一个方法即可,这样使controller层看起来更加清晰。

三个层之间的小结:

总结这三者,通过例子来解释:

Controller像是服务员,顾客点什么菜,菜上给几号桌,都是ta的职责;

Service是厨师,action送来的菜单上的菜全是ta做的;

Dao是厨房的小工,和原材料打交道的事情全是ta管。

相互关系是,小工(dao)的工作是要满足厨师(service)的要求,厨师(Service)要满足服务员(Controller)转达的客户(页面用户)的要求,服务员自然就是为客户服务喽。

DAO面向表,Service面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出DAO层,然后根据具体的业务逻辑进一步封装DAO层成一个Service层,对外提供成一个服务。

SpringMVC ——model、view、Controller

SSM是sping+springMVC+mybatis集成的框架。

view:视图。这个很容易理解,其实view层就是用户用户可以看到的东西。后台怎么处理不关心,只关心怎么样想用户展示信息。

model层=entity层。存放我们的实体类,与数据库中的属性值基本保持一致。

5949fec3fa4770cf50024ea8c5ef0e98.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值