我现在有个程序原来是连接SQL SERVER数据库,后来说要可以连接ORACLE,也就是说想根据配置或连接SQL SERVER,或连接ORACLE。
我目前的想法是在BLL层连接DAL层时,判定是连接哪个数据库,然后进入不同的DAL。但是这样有一个问题就是,因为SQL SERVER和ORACLE的SQL语句有不同的地方,所以我需要写2套SQL语句,这样将来修改的时候,就需要同时修改2套SQL语句的内容,我想问下有没有其他的办法来完成?
BLL是作为业务编辑层,所有的业务逻辑关系都是在该层完成的。
DAL是存放SQL语句的,所有的SQL语句都是放在该层,由BLL来调用。
那么是建立2个DAL好呢,还是在DAL里针对某个SQL语句建立2套比较好,因为要考虑到以后的维护和程序的易读性问题。以前没写过这些,谁写过的,给个建议
2套sql语句基本是要定了。除非很基本的语句通用。
控制反转,依赖注入,接口编程,业务层不需要知道是来自那个数据库的,只需要实现了特定业务接口就可以了,所以这里不仅针对SQL SERVER和ORACLE,也可以是sqllite、access 、mysql等等,如你所说"需要写2套SQL语句",这个貌似是避免不了的