java常用的三层架构,有点蒙

Action(Controller)/Service/Dao这几个层的每一个层的功能是什么?它们之间的调用关系是怎样的???

0

7个回答

ction是管理业务(Service)调度和管理跳转的。

  Service是管理具体的功能的。

  Action只负责管理,而Service负责实施。

  DAO只完成增删改查,虽然可以1-n,n-n,1-1关联,模糊、动态、子查询都可以。但是无论多么复杂的查询,dao只是封装增删改查。至于增删查改如何去实现一个功能,dao是不管的。

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

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

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

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

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

  现在最基本的分层方式,结合了SSH架构。Model层就是对应的数据库表的实体类。Dao层是使用了Hibernate连接数据库、操作数据库(增删改查)。Service层:引用对应的Dao数据库操作。Action层:引用对应的Service层,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理。

  以上的Hibernate, Struts,都需要注入到Spring的配置文件中,Spring把这些联系起来,成为一个整体。
3
 Action是管理业务(Service)调度和管理跳转的。

      Service是管理具体的功能的。

      Action只负责管理,而Service负责实施。

      DAO只完成增删改查,虽然可以1-n,n-n,1-1关联,模糊、动态、子查询都可以。但是无论多么复杂的查询,dao只是封装增删改查。至于增删查改如何去实现一个功能,dao是不管的。

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

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

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

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

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

      现在最基本的分层方式,结合了SSH架构。Model层就是对应的数据库表的实体类。Dao层是使用了Hibernate连接数据库、操作数据库(增删改查)。Service层:引用对应的Dao数据库操作。Action层:引用对应的Service层,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理。

      以上的Hibernate, Struts,都需要注入到Spring的配置文件中,Spring把这些联系起来,成为一个整体。
2

controller是控制层负责业务逻辑,service是具体业务的实现,dao是数据库操作层,与数据库打交道。
比如你要完成删除操作:先调用执行删除操作的controller(接收数据,将数据传给service),之后在controller中调用service(对参数进行解析)实现删除操作,service再执行dao层相应方法实现数据库数据删除。
总结:client->controller->service->dao->database->dao->service->controller->client

2

大致说下吧

dao用来操作数据库,是直接,也可能是唯一跟数据库打交道的部分

service主要用来实现业务逻辑,也就是调用dao从数据库取需要的数据,然后加工处理成需要的格式

controller就是用来接收用户请求,然后调用service进行业务逻辑处理,然后从service拿到数据,然后返回给客户端

这是大体用法,严格来说,工作中只有dao层能操作数据库,service严禁操作数据库,service用来完成各种业务逻辑,controller总体调控,调用service完成整体业务逻辑,然后将数据返回给客户端

1

DAO(DataBase Access Object) 最里层,直接连接数据库,并对数据库进行操作。他下面写接口和实现类等。后端
Service是实现系统的业务逻辑需求,他是从DAO里面调用类和方法。服务器
Controller就是最外层,将Service中实现的业务结果,展示出来。前端

楼上的说的很详细了

1

dao层是最底层的,负责和数据库打交道,是一些增删改差的操作
service 是程序的业务逻辑实现,有各种方法,调用的是dao层封装好的增删改查操作
controller 是最外层,负责直接和页面打交道,获取前端和返回数据,调用的是service封装好的业务逻辑的实现。

1

在javaweb项目中:
1.正向逻辑(请求):
浏览器发起url请求到controller ---> ontroller处理请求信息(请求参数处理等),调用service ---> service层调用dao层获取数据,进行逻辑处理
---> dao层执行sql/hql语句与数据进行交互
2.反向逻辑(响应):
dao层将与数据库交互结果(或查询数据)返回给service ---> service根据dao层返回信息执行业务逻辑,并将最终结果传递回controller --->
controller对结果信息进行数据处(如:转成json格式)返回给浏览器 ---> 浏览器根据返回数据进行页面展示

1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
有点蒙了
rnrnrn我想用input便签给他的运行时间显示出来 该怎么写啊
spring的三层架构
分层架构: 面向对象编程-->JavaBean-->Book 和数据库交互 jdbc、hibernate、mybatis(持久化机制) DAO层专门负责数据库交互 CRUD(增查改删) Service层 对于一些业务判断处理, eg:添加图书-->西游记 后传 西游记续 图书名称判断(通过书名进行查询) publi
浅谈JavaEE三层架构及与mvc的区别
浅谈JavaEE三层架构及与mvc的区别
经典三层架构以及分层的原则
Controller:控制层  ——》接收用户请求。并相应用户的请求。同时会根据用户的请求调用对应的service完成我们项目中的功能。 注意他不会直接与业务和数据库相关联    Service:业务逻辑层——》完成项目中的功能(项目中某个功能的业务和逻辑),它会调用model中的方法来操作数据库。 注意它不会直接与数据库连接   Model:模型层(跟tp5.1中的模型是有区别的)—...
对于三层架构的认识整理
三层架构并不是MVC,MVC是一个很早就有的经典的程序设计模式,M-V-C分为三层,M(Model)-V(View)-C(Control)。而web开发中的三层架构是指:数据访问层(DAL-DatabaseAccessLayer),业务逻辑层(BLL-BusinessLoginLayer),以及用户界面层(UI-UserInterface,实际就是网页后台的具体调用BLL层)。这个是基本概念。曾经
有点蒙!!!关于共享文件夹。
不好意思,其实是windows的问题,可是在linux板块呆惯了。所以。。。rnrn现在的情况是这样:rn我在我的pc机上创建了一个共享文件夹,rn自己登陆//10.1.5.24没有问题。也能显示那个文件夹存在。rnrn换另一台电脑登陆会提示输入用户和密码。可是我输入什么都是错的。rnrnrn为啥呢??
JAVA常用设计模式
JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式
JAVA常用的设计模式
JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式JAVA常用的设计模式
Java常用单词
Java常用单词Java常用单词Java常用单词Java常用单词Java常用单词
java常用正则表达式.doc
java常用正则表达式java常用正则表达式java常用正则表达式java常用正则表达式java常用正则表达式java常用正则表达式
Java常用实例程序
Java常用实例程序Java常用实例程序Java常用实例程序Java常用实例程序Java常用实例程序Java常用实例程序Java常用实例程序Java常用实例程序
Java常用设计模式.pdf
Java常用设计模式Java常用设计模式Java常用设计模式
decimal和double的转换,有点蒙
[code=csharp]rnstatic void Main(string[] args)rnrn decimal d = 300.2m;rn object b = d;rn double dd = (double)b;rn Console.WriteLine(dd);rn Console.ReadKey();rnrn[/code]rn上面,把b转换成double,为什么失败呢?
Java常用英语 最新整理
java常用的 英语 java常用的 英语 java常用的 英语 java常用的 英语 java常用的 英语 java常用的 英语 java常用的 英语 java 最新整理最新整理产用的
PS抠图技巧——蒙版的应用
高难度抠图——蒙版在复杂边缘上的应用。有点难度,大家看看看学习学习~
.net or java?最近有点蒙
最近脑子里挺蒙的,一直在学C#,从一开始我就有放弃java的念头,反正学校讲java的时候我是一点没听,一本书一共才15章,到GUI那部分竟然说只做了解就行,我真不想卷这些老师,3个小时讲了3章,真把我们当天才了?rnrn其实,咱上的也不是么正规的学校,就是培训1年的那种。碰见负责的老师还好点,不负责的就完蛋。班里也是什么样的人都有,初中毕业到大学本科毕业,18岁到35岁...有个老大哥的孩子都8岁了,干了10年的会计来学这个,我一直不明白人家为的么...rnrn前两天让那个代课的娘们把我惹火了,我就把她给卷了...人太傲了,完全把你当小学来看,我出去上厕所,竟然把我关外面了...rnrn上面讲java我是没听,就自己买了本java核心技术在家,越看越不知道改怎么学了...C#写代码的习惯和java有区别,自己适应不了,java的GUI也没C#好看,听人家说java不常做GUI?有点想放弃C#改学java,但就是有点舍不得C#,但又不能让自己半瓶子咣当,总得抓住一门来学,才算对的气自己...rnrn.Net快学到ASP了,实在不忍放弃它,再去功java...rnrn前辈们给点意见吧...
如何学习MyEclipse,有点蒙
这软件功能确实强,但就是因为功能太多了,有点蒙。还都是英文的。。。不知道大家都是学用这个软件的。我是初学者,以为前JC了。现在用好点的工具,还不会用了。 大家给我点方法。
Java常用排序算法
Java常用排序算法 Java常用排序算法 Java常用排序算法 Java常用排序算法
Java常用数值算法集
Java常用数值算法集 Java常用数值算法集 Java常用数值算法集
SSH远程连接:简单的连接
在已知用户名和ip的情况下,简答的ssh如下: rongtao@rongtao:~$ ssh Toa@172.18.174.84 Toa@172.18.174.84's password: Last login: Sat Dec 16 13:53:18 2017 from 172.18.175.51 -bash-4.1$ ls algorithmsDataStructures clean.s
JAVA常用的正则表达式
JAVA常用的正则表达式 JAVA常用的正则表达式
java很常用的東西
java常用東東,java常用東東,java常用東東,java常用東東,
Java API常用类及方法总结
Math类Math类位于java.lang包中,可以直接使用,无需引入。 常量: Math.PI:原周长与直径之比π Math.E:自然对数的基值e 常用方法: abs(x)————-x的绝对值 ceil(x)————-x四舍五入 floor(x)————x向下取整 top(X)————-x向上取整 exp(x)————-e^x m
java常用内存配置知识
java常用内存配置知识,java常用内存配置知识,java常用内存配置知识,
java常用的工具类整理28个
java常用的工具类整理28个java常用的工具类整理28个java常用的工具类整理28个
java常用开发代码2面试
java常用开发代码2面试,java常用开发代java常用开发代码2面试码2面试,
java常用开发代码3,Struts
java常用开发代码3,Struts,java常用开发代码3,Struts, java常用开发代码3,Struts,java常用开发代码3,Struts
java常用开发代码4,Spring
java常用开发代码4,Spring , java常用开发代码4,Spring , java常用开发代码4,Spring , java常用开发代码4,Spring
JAVA常用面试题(含答案)
JAVA常用面试题(含答案)JAVA常用面试题(含答案)
三层架构
为什么要用三层   说到三层,先来说一说两层结构。两层结构将界面展示、业务逻辑、数据访问等都写到一起,如果用户需求变化,就需要对整个项目进行大量修改,系统的维护和升级极其不利;而且界面层直接访问数据库,还会有安全隐患。结构如下图所示:   所以基于两层结构的局限性,三层结构就出现了。三层结构符合“高内聚、低耦合”的特点,每个层职责明确。利用分层,降低了层间依赖,使系统的耦合更加松散,从而使...
java常用开发代码6,Struts,Spring
java常用开发代码6,Struts,Spring , java常用开发代码6,Struts,Spring , java常用开发代码6,Struts,Spring , java常用开发代码6,Struts,Spring
Java常用架包struts,hibernate等
Java常用架包struts,hibernate等Java常用架包struts,hibernate等Java常用架包struts,hibernate等Java常用架包struts,hibernate等
用三层架构编写的登录模块
这是我第一次接触三层架构,其中逻辑层中,判断方面,有点问题,仍在思考.
java常用日期方法例子
java常用日期方法例子 java常用日期方法例子
.NET/C#开源三层架构企业网站,和大家分享一下(底层源代码)文件有点大分为两部分(part2)
.NET/C#开源三层架构企业网站,和大家分享一下(底层源代码)文件有点大分为两部分(part2) .NET/C#开源三层架构企业网站,和大家分享一下(底层源代码)文件有点大分为两部分(part2)
MVC与三层架构
MVC:            MVC是一种设计模式            M 即Model(模型层),主要负责出来业务逻辑以及数据库的交互            在Java Web中被认为是JavaBean           V 即View(视图层),主要用于显示数据和提交数据             C 即Controller(控制器),主要是用作捕获请求并控制请求转发    ...
三层架构及其相应的技术
最近这些天在学习Maven时发现老师给了一张图,对理解java开发很有作用,我拿来分享一下:                                                  图片出处:http://www.gulixueyuan.com/course/42中课程第一课 图片很清楚的说明了软件设计体系架构中的三个层次,持久化层->业务逻辑层->表示层。而表示层...
温故而知新---浅析三层架构(一个超简单的系统登录三层架构实例)
刚开始接触三层架构是在快两个月前,那时候找了好多例子感觉也都看不怎么懂,今天闲着没事,就把以前学的东西翻出来,算是温习温习。由于本人也接触时间不长,所以以下言论有不正确之处,多多海涵。        首先我们先要知道什么是三层架构,个人理解的三层架构就是将业务分为界面层(UI层),业务逻辑层(BLL层)和数据访问层(DAL层),各层之间各司其职,层层传递信息。 优点是可以达到高内聚,低
asp.net三层架构实现注册登录,三层架构练习
用asp.net的三层架构做的登录,注册,适合新手练习
史上最好的.net三层架构实例
史上最好的.net三层架构实例,让你真正高效掌握