关于service层和DAO层的几点疑惑
首先,service层会很大,方法很多。第二,试想,所有DAO都有增删改查四个基本方法。假设在DAO层(如StudentDAO.java)里student.add(),s...
首先,service层会很大,方法很多。
第二,试想,所有DAO都有增删改查四个基本方法。假设在DAO层(如StudentDAO.java)里student.add(),student.delete().student.update(),student.query()。
而如果应用增加了service层(如ApplictionServiceImpl.java),需要在service层中加上
applicationService.addStudent(),deleteStudent(),updateStudent(),queryStudent()四个方法。
这时你需要更新service层的接口类ApplicationService.Java,加上这四个方法。然后再更新service层的实现类ApplicationServiceImpl,加上这四个方法,最后你发现这四个方法每个方法里都只有一句话(以addStudent()为例)
public int addStudent(Student student){
return student.add();
}
这样是不是太傻了点,还不如在action中直接调用StudentDAO中的student.add()。
以上是我的个人看法,请各位指点
lovepetrel 是从网上copy过来的http://zhidao.baidu.com/question/46421595.html 已经看过了 就不多说了
Proc_871113写的很详细 先谢谢你 但是我还是有点不明白 能给我个例子么 有代码的 ! 展开
第二,试想,所有DAO都有增删改查四个基本方法。假设在DAO层(如StudentDAO.java)里student.add(),student.delete().student.update(),student.query()。
而如果应用增加了service层(如ApplictionServiceImpl.java),需要在service层中加上
applicationService.addStudent(),deleteStudent(),updateStudent(),queryStudent()四个方法。
这时你需要更新service层的接口类ApplicationService.Java,加上这四个方法。然后再更新service层的实现类ApplicationServiceImpl,加上这四个方法,最后你发现这四个方法每个方法里都只有一句话(以addStudent()为例)
public int addStudent(Student student){
return student.add();
}
这样是不是太傻了点,还不如在action中直接调用StudentDAO中的student.add()。
以上是我的个人看法,请各位指点
lovepetrel 是从网上copy过来的http://zhidao.baidu.com/question/46421595.html 已经看过了 就不多说了
Proc_871113写的很详细 先谢谢你 但是我还是有点不明白 能给我个例子么 有代码的 ! 展开
7个回答
展开全部
这么来讲好了 按你所说 在action中直接调用StudentDAO中的student.add()。 现在有客户A 客户B
客户A的需求是 addStudent 这个和你所说的情况一致
客户B的需求是 addStudent 前去加一个动作 将学生父母的信息也插入数据库
这时如果按照只调用DAO的方法的话,你需要从新建立一个action
CustomerBAction
再重新写一个DAO 因为这个DAO里要有添加父母的方法 student.addStudentAndParentInfo()。
CustomerBAction 去调用 student.addStudentAndParentInfo()。
这样加大了很多工作量
如果中间有service层的话 action始终用一个action
而调用的也是service接口 只要对接口注入不同的实现就可以满足 不同客户的需求了
知识要活学活用,要按照自己项目以后的发展趋势来搭设环境,别人家说什么就用什么。其实有时候javabean+jsp 也很好用啊,因为jsp不用重启服务 开发速度很快。我做小项目就是这种模式,以后小项目的更改也会很少,所以不用搭建的过于复杂。
客户A的需求是 addStudent 这个和你所说的情况一致
客户B的需求是 addStudent 前去加一个动作 将学生父母的信息也插入数据库
这时如果按照只调用DAO的方法的话,你需要从新建立一个action
CustomerBAction
再重新写一个DAO 因为这个DAO里要有添加父母的方法 student.addStudentAndParentInfo()。
CustomerBAction 去调用 student.addStudentAndParentInfo()。
这样加大了很多工作量
如果中间有service层的话 action始终用一个action
而调用的也是service接口 只要对接口注入不同的实现就可以满足 不同客户的需求了
知识要活学活用,要按照自己项目以后的发展趋势来搭设环境,别人家说什么就用什么。其实有时候javabean+jsp 也很好用啊,因为jsp不用重启服务 开发速度很快。我做小项目就是这种模式,以后小项目的更改也会很少,所以不用搭建的过于复杂。
展开全部
首先是层次清晰,dao只管是数据库打交道,service面相用户,另外不得不说的是service层是基于dao层的功能加强层,你可以在调用dao方法的同时做很多其他的事情,如:先查询,如果系统做大了做复杂了,你会发现这样做的好处的~~ 系统功能简单看上去是很蹩脚 因为就是简单的增删改查
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你做的是个简单的业务
比如一个业务流程:
1.删除
2.添加
3.查询
4.判断是否存在
5.如果存在更新
6.不存在添加
....
你不能都写在dao的一个方法中吧
那么就需要再封装一层service
dao : Data Access Object数据访问接口,只提供简单数据库操作方法
service :提供各种业务逻辑服务
...
比如一个业务流程:
1.删除
2.添加
3.查询
4.判断是否存在
5.如果存在更新
6.不存在添加
....
你不能都写在dao的一个方法中吧
那么就需要再封装一层service
dao : Data Access Object数据访问接口,只提供简单数据库操作方法
service :提供各种业务逻辑服务
...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你感觉傻只是因为你限于经验的原因,所见的项目所用的方法不多而已。
从基本的使用方式来说,在service层是面向于具体的实现功能,所有的数据库的具体操作在Dao层实现。在实际的项目中,很多的功能都是需要多个Dao进行组合的,还有一些功能方法可能根本不用DAO的都是在service层实现,service层是一个项目的核心模块,所有定义的功能都在这,在Action中需要调用的只是这些功能的方法名。
从具体的应用来看,则是,在实际的开发过程中,客户的需求功能会经常变化的,功能的添加和减少是很正常的事情,而代码的编写则是以最少的改动来实现目标,分层是对效率的优化。这在练习一些小项目中是感觉不到的,呵呵。
说白了,就是存在即合理,有需求才有这种模式的存在,希望对你有帮助。
从基本的使用方式来说,在service层是面向于具体的实现功能,所有的数据库的具体操作在Dao层实现。在实际的项目中,很多的功能都是需要多个Dao进行组合的,还有一些功能方法可能根本不用DAO的都是在service层实现,service层是一个项目的核心模块,所有定义的功能都在这,在Action中需要调用的只是这些功能的方法名。
从具体的应用来看,则是,在实际的开发过程中,客户的需求功能会经常变化的,功能的添加和减少是很正常的事情,而代码的编写则是以最少的改动来实现目标,分层是对效率的优化。这在练习一些小项目中是感觉不到的,呵呵。
说白了,就是存在即合理,有需求才有这种模式的存在,希望对你有帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
额。。那算了,只是懒的打字而已,呵呵,感觉这个已经说的很明白了,以后你多做项目就知道了,尤其是大点的项目
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |