ssh中service层与dao层解耦的问题.doc

ssh中service层与dao层解耦的问题.doc

ID:56721289

大小:227.50 KB

页数:34页

时间:2020-07-06

ssh中service层与dao层解耦的问题.doc_第1页
ssh中service层与dao层解耦的问题.doc_第2页
ssh中service层与dao层解耦的问题.doc_第3页
ssh中service层与dao层解耦的问题.doc_第4页
ssh中service层与dao层解耦的问题.doc_第5页
资源描述:

《ssh中service层与dao层解耦的问题.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、11111当前应用dao层使用了hibernate,但是为了使应用与hibernate解耦,在dao层使用一个接口,此接口中提供了get、save、update、delete、list、query等的方法,service层使用该接口提供的方法而无需知道dao层使用的具体框架。现在有个问题,如果是较复杂查询,hibernate提供了hql或者Restrictions、Criteria之类的类来实现查询,但是我希望service层或action层不去使用hibernate的东西,如何设计封闭这个条件比较好?回答针对接口编程,而不是实现就好了。DAO

2、接口存在的目的就是这个,Service层只向DAO依赖(这个是必须的),表现层只向Service层依赖,不能跨层依赖,这样不符合分层的设计。因此,只有Service层对DAO的依赖,而且依赖的是接口,Service层自然不必知道DAO的实现到底是用Hibernate还是JPA或JDBC了,这已经达到了解耦的目的。myali88(架构师)2010-05-20代码是人写的,如果程序员非要在service层写hibernate的东西,你是没办法控制的。分层只是个规范,程序员只有遵守这个规范,才解耦了。(中级程序员)2010-05-20在设计的时候hi

3、bernate的hql或者Restrictions、Criteria之类的类就不要出现在方法参数里,多采用泛型机制。可以看下appfuse的源代码看它是怎么设计的。cwx714(架构师)2010-05-20我比较同意的说法,我们现在使用的就是appfuse,就是有人非要把相关的东西写到service层里,很无奈,还有更可气的是,hibernate不用,非要放个ibatis进去使。重要的还是遵守规范,和代码的审查。说句很扯的话,时不时的换下数据库(例如oracle改成mysql),时不时的改下框架(hibernate改ibatis)没准让他们吃点

4、苦头就好了。以上属于扯淡的话,别拍我~~~~~。sheep3600(高级程序员)2010-05-201楼的说的不错,zhou(初级程序员)2010-05-20myali88说的很正确,针对接口编程。使用spring将daoimplement注入进service里。如果程序员缺乏分层和面向接口编程的概念,可以让有经验的带一带;如果是有意不遵循规,就让他滚蛋。summerfeel(初级程序员)2010-05-21nodao一个service一个adapter业务serviceextendsbaseServicerrsy23(初级程序员)2010-0

5、5-21多使用泛型将hibernate的操作全都放到daoImpl里面去,不用扯到service层的比如在dao层返回一个List给service就操作就OK了Java代码1./** 2. * WjMax Corporation copy right 2010 - 2010 3. *  4. * $Header: /cvsroot/idc/wj/java/com/wj/common/utils/WjCriteria.java,v 1.5 2010/04/16 09:14:20 elan Exp $ 5. * $Id: WjCriteria.ja

6、va,v 1.5 2010/04/16 09:14:20 elan Exp $ 6. * $Author: elan $ 7. * $Date: 2010/04/16 09:14:20 $ 8. * $Revision: 1.5 $ 9. */  10.package com.wj.common.utils;  11.  12./** 13. * 标准条件查询 14. *  15. *  16. * @author elan Email:@qq.com 17. */  18.public interface WjCriteria {  19. 

7、 20.    /** 21.     * 添加条件 22.     *  23.     * @param criterion 24.     * @return 25.     */  26.    public WjCriteria add(Object criterion);  1.  2.    /** 3.     * 排序 4.     *  5.     * @param wjOrder 6.     * @return 7.     */  8.    public WjCriteria addOrder(WjOrder wj

8、Order);  9.  10.    /** 11.     * 创建一个关联别名 12.     *  13.     * @param asso

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。