关于MVC结构中的action,service,dao,domain的解释

转载 2015年07月09日 10:04:28
service是业务层,dao是数据访问层。简单的说DAO层是跟数据库打交道的,service层是处理一些业务流程的
表示层调用控制层,控制层调用业务层,业务层调用数据访问层。
举个最简单的例子,你做一个分页的功能,数据1000条,你20条在一个页,你可以把这个功能写成工具类封装起来,然后在业务层里调用这个封装的方法,这才是业务里真正干得事,只要没访问数据库的,都要在业务里写。 
比说你现在用的是SSH框架,做一个用户模块:
1、假设现在你做这个功能会用到user表和权限表,那么你前台的页面访问action,action再去调用用户模块service,用户模块service判断你是操作user表还是权限表,如果你操作的是user表则service的实现类就去调用userDAO。如果是操作的是权限表则调用权限的DAO
2、也就是说DAO一定是和数据库的每张表一一对应,而service则不是。其实你一个项目一个service和一个DAO其实也一样可以操作数据库,只不过那要是表非常多,出问题了,那找起来多麻烦,而且太乱了
3、好处就是你的整个项目非常系统化,和数据库的表能一致,而且功能模块化,这样以后维护或者改错比较容易,性能也高一些
为什么要用service层封装

我认为:一般来说,某一个程序的有些业务流程需要连接数据库,有些不需要与数据库打交道而直接是一些业务处理,这样就需要我们整合起来到service中去,这样可以起到一个更好的开发与维护的作用,同时也是MVC设计模式中model层功能的体现


初级DAO模式:
例如::写一个类 操作1张表 针对这张表的所有操作都以方法的形式写在这个类中 1个操作对应1个方法要求是外部通过调用这个类的方法达到操作某张表的目的时不需要写任何和数据库以及JDBC相关的代码,这个类的命名就是XXDAO。比如表叫做 t_goods 商品表那么操作它的DAO就叫GoodsDAO

高级DAO模式:
例如:即DAO工厂模式,多个XXDAO实现同一个接口或者继承同一个基类,编写一个工厂类通过工厂模式(简单工厂模式或利用反射动态加载均可)获得接口或基类对象,内部实际上封装返回的是具体的XXDAO类的对象。简单的说即是在1的基础上将创建具体的XXDAO对象的方式由new变为工厂模式实现
例如:UserDAO dao = DAOFactory.create(...);
dao.save() 
dao.delete....
1.有一个dao接口,里面有平时的增删查该的方法
2.有一个具体的实体类
3.有一个dao的实现类,有对实体操作的方法,继承1的接口
4.如果有需要,还可以有一个工厂类,负责生产dao实现类
DAO层一般有接口和该接口的实现类! 接口用于规范实现类! 实现类一般用于用于操作数据库! 一般操作修改,添加,删除数据库操作的步骤很相似,就写了一个公共类DAO类 ,修改,添加,删除数据库操作时 直接调用公共类DAO类!

com.公司名.系统名.模块名 

代码目录结构
Action : 负责页面逻辑,将调用service的结果返回到页面中
Service : 接口定义
---impl 接口的实现,负责业务逻辑
Domain 对应数据库表的pojo
Dao : 只负责连接数据库,从数据库中查询结果,包装成对象后返回
util :工具类

相关文章推荐

从MVC框架看MVC架构的设计

从MVC框架看MVC架构的设计尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点。本文将对传统MVC架构中的一些弊病进行解读,了解一...

DAO层、ENTITY层、SERVICE层、CONTROLLER层个人的理解分析

DAO层、ENTITY层、SERVICE层、CONTROLLER层 1、DAO层: 持久层  主要与数据库进行交互    DAO层主要是做数据持久层的工作,主要与数据库进行交互。DAO层首先会...
  • Warpar
  • Warpar
  • 2017年03月28日 16:33
  • 4480

MVC+DAO设计模式下的设计流程

这里总结一下MVC+DAO的设计流程。通过MVC+DAO的设计模式,可以使项目在设计过程中结构更为明晰,并且能够方便的进行修改。MVC是一个分层模型,即模型、视图、控制器。DAO是一个数据库访问模型,...
  • tao_sun
  • tao_sun
  • 2014年02月12日 17:55
  • 2705

mvc dao层、service层 到底怎么写?

首先解释面上意思,service是业务层,dao是数据访问层。 呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调...
  • shaoduo
  • shaoduo
  • 2016年02月18日 09:22
  • 6478

浅谈MVC架构—你到底有什么本事

MVC的处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。然后模型根据用户请求进行相应的业务逻辑处理,并返回数据。最后控制器调用相应的视图格式化模型返回的数据,并通过视图呈现给用户...

MVC+DAO设计模式

本文摘自:http://www.paper.edu.cn    基于MVC+DAO设计模式的Struts框架应用  鲍嘉鑫   (太原理工大学计算机与软件学院,山两太原,030024)       ...

MVC Action Filter

Action过滤器的执行顺序 每一个Action过滤器都有一个 Order 属性,用来决定Action过滤器在该范围内的执行顺序。Order属性必需是0(默认值)或者更大的整数值。省略Order...

基于Struts2中的Action层、Service层、Dao层理解在SpringMVC对应的四大注解

@Component、@Repository @Service、@Controller   看字面含义,很容易却别出其中三个:   @Controller 控制层,就是我们的action层...

Java三层架构、MVC、Dao_Service_Action

Java三层架构 MVC基本概念 Dao_Service_Action等包的作用

Java Web基础——Action+Service +Dao三层的功能划分

参考来源:http://www.xuebuyuan.com/2153333.html  1. Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于MVC结构中的action,service,dao,domain的解释
举报原因:
原因补充:

(最多只允许输入30个字)