Controller(SoringMVC),service,dao三层的作用

爱吃灯笼椒的李阿外 2015-09-06 12:05:55
这三个中好理解的就是dao层,就是操作数据库。

controller层说是准备数据用的,service层是做业务逻辑的。

但是我总感觉自己理解的不够深入。想了解各层具体都要做什么。

比如controller把所有需要的条件传给service,在service在调用各个dao??

那不就是相当于把request传到service里了吗?

又有另外的问题,在controller把数据准备好分开调用多个service做增删改。

那第一个service做完了在第二个做的时候报错了。前面做的事务就不会滚了。

求个大神讲解。
...全文
7940 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序猿小亮 2015-09-08
  • 打赏
  • 举报
回复
你可以看看典型的三层架构的基本理论 http://baike.baidu.com/link?url=8JB3-vlV9HEYNmkR5Aa9aRjit60v6WEpjAWt5rZqt_6RsEnVa8tLa2qotACqVl89V6qE2eIwDMY-7nbp8TNr6q 百科已经说明的很详细了,可以很好的帮助你理解controller,service,dao各层的作用。
微甜灬呼吸 2015-09-08
  • 打赏
  • 举报
回复
引用 7 楼 ayanami001 的回复:
http://www.itcast.cn/channel/video.shtml
微甜灬呼吸 2015-09-08
  • 打赏
  • 举报
回复
sxiaobei 2015-09-07
  • 打赏
  • 举报
回复
对于事务的回滚,你可以看一下hibernate事务的传播特性,一个方法加入另一个方法的时候,会根据不同的事务传播特性来装配事务,还有事务一定要在有必要的时候才加,否则会影响性能,事务一般加载service层,dao只是用来对数据库做增删查改的,在service调用dao的时候,一般会调用几个dao所以会这几个dao是有关联的,所以这个时候才会用到事务,如果一个service方法去调用另一个service方法,这时就会用到事务的传播特性,而且方法在抛出异常是否回滚也是可以设置的,建议你结合项目深入了解。
  • 打赏
  • 举报
回复
引用 1 楼 shijing266 的回复:
你问题的答案: 1、Controller Service Dao 三者的关系 2、你说的事物回滚,当有两个添删改操作以上的时候,尽量全部写在一个service操作里面,因为虽然是操作两个表,但是属于同一个业务逻辑,两者是写在一起的 至于控制器Controller, 他只是用来处理简单的参数验证啊、或者简单查询什么的,所有业务逻辑不要写在controller里面
1说的太笼统,2还好 但是感觉还不够细
  • 打赏
  • 举报
回复
引用 3 楼 Bdongo 的回复:
对于这些基础知识,如果你不深入了解懂点皮毛是不够的,我建议你看看传智播客的springMVC视频,里面讲的很详细!
你有完整视频?可否传给我
  • 打赏
  • 举报
回复
你问题的答案: 1、Controller Service Dao 三者的关系 2、你说的事物回滚,当有两个添删改操作以上的时候,尽量全部写在一个service操作里面,因为虽然是操作两个表,但是属于同一个业务逻辑,两者是写在一起的 至于控制器Controller, 他只是用来处理简单的参数验证啊、或者简单查询什么的,所有业务逻辑不要写在controller里面
bedonga 2015-09-06
  • 打赏
  • 举报
回复
对于这些基础知识,如果你不深入了解懂点皮毛是不够的,我建议你看看传智播客的springMVC视频,里面讲的很详细!
解开者 2015-09-06
  • 打赏
  • 举报
回复
这中封装是没有定论的,理想的分层应该是每层可以独立开发,对一层的变更不影响其它层。需要配置成事务的业务尽可能装进service的一个方法里,这样可以使用Spring的事务模块

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧