第一种方式:
我之前是将sql语句放到dao中....
在servlet中调用dao的方法
传递bean到dao中进行相关操作....
这样的话更具不同的操作...我就要创建多个dao方法
第二种方式:
后来我把sql放到servlet中....直接在servlet中拼好sql
在dao中直接执行sql就可以了
这样我只需要两个dao方法就差不多了...一个查询..一个更新
后来我使用了hibernate...
hibernate两个方式都可以..
但是我在想 到底是在servlet中写sql 然后dao执行sql 还是说在dao中写sql执行
第一种方式,我个人感觉好处就是servlet中没有那么多sql代码了..传递数据通过bean 传给dao方法
但是坏处就是dao中会出现大量的dao方法
第二种方式..dao的方法数量减少了...但是在servlet中会有大量的sql字符串
我现在有点矛盾了...
在修改逻辑的时候...如果第一种方式..servlet中需要修改...dao中的sql语句也需要修改
第二种方式..多有修改都在servlet中进行..修改sql 就好了.因为dao只负责执行你给的sql语句就可以了..
所以我想请教一下各位...sql语句放在servlet中合适 还是dao中...
或者一般的做法是什么样的?
其实换个角度想就很容易了。在领域模型思想中,针对越接近硬件层的编码越要向下沉淀,因为硬件层是不确定的因素,需要对这种操作进行隔离,抽象。比如针对同一种数据,刚开始使用mysql存储,可数据量达到一定规模不一定用mysql存储,上层的业务逻辑不一定改变,改变的仅仅是接近硬件层的存储方式。所以sql这种接口越往下沉淀扩展性和易用性越好。
都要付出代价的。
dao 越多,结构越清晰,耦合度越低,写代码就很多,不过很多通用操作可以在dao基类中完成;
dao 越少,写的代码就越少,但是很多东西就耦合在一起了,阅读起来难,维护起来麻烦,东西不够清晰,sql 没有一个放在什么地方的标准,就会造成滥放。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。