none
我有个项目要求支持mysql ,sqlserver,oracle数据库切换,系统应该怎么样设计 RRS feed

  • 问题

  • 我有个项目有显示层、模型层、业务逻辑层、数据访问层,要求支持mysql ,sqlserver,oracle数据库切换,系统应该怎么样设计

    并且要求尽可能共用模型层、业务逻辑层、数据访问层。

    另外如果有nhibernate这样的解决方案更好,

    不知道有没有别的更好的解决方案,应用别的控件也可以,只要能实现


    man
    2010年10月29日 14:40

答案

  • 你好

        主要在数据库层,提供数据库接口,在里边声明数据库的操作,比如,增删改,查询等,定义mysql,sqlserver,oracle类实现这个接口。

        利用工厂方法,创建相应的数据库对象接口。

        根据从UI层获的设置创建相应的数据库操作。

        其实,思想很简单,查一下工厂模式和工厂方法相关的资料,就知道怎么写了。


    1+1=The World >>> BLOG=http://blog.csdn.net/liuning800203 >>> Email=liuning800203@hotmail.com
    2010年10月31日 7:49
  • 可参考Petshop4.0的关于SQL server和Oracle的实现方式。

    希望对你有帮助!

    2010年10月31日 8:12

全部回复

  • 数据访问层 提取一层接口,然后分别实现
    2010年10月31日 0:36
    版主
  • 你好

        主要在数据库层,提供数据库接口,在里边声明数据库的操作,比如,增删改,查询等,定义mysql,sqlserver,oracle类实现这个接口。

        利用工厂方法,创建相应的数据库对象接口。

        根据从UI层获的设置创建相应的数据库操作。

        其实,思想很简单,查一下工厂模式和工厂方法相关的资料,就知道怎么写了。


    1+1=The World >>> BLOG=http://blog.csdn.net/liuning800203 >>> Email=liuning800203@hotmail.com
    2010年10月31日 7:49
  • 可参考Petshop4.0的关于SQL server和Oracle的实现方式。

    希望对你有帮助!

    2010年10月31日 8:12
  • 你好,这种功能涉及到工厂系列产品的切换,建议你用抽象工厂模式。这几个数据库都实现一个抽象工厂接口。这样的话只需要在web.config中修改数据库名称就能实现各个数据库之间的切换。
    2010年11月2日 1:57