请问:写一个管理软件要用到使多种不同的数据库,怎么能实现可在不同的数据库中都可正常应用我现在的做法是写一个配置文件,让用户去选择所使用的数据库,比如A用户选择使用oracle,那么进入系统时会有一个全局变量做标识,遇到需要读或编辑数据时,就用户哪个数据库的语句,来完成,当然大部分SQL语句是一样的,可总会有不一样的地方,难道就必须得每个用到的地方都判断吗?
有没有好的方法来解决这个问题?

解决方案 »

  1.   

    除非你所有的SQL都是标准SQL,没有用到特定数据库的特定函数,否则没办法。
    但不用数据库的特定函数基本上是很难做到的,比如日期的格式化,比如字符串的一些操作。
    做过类似这方面的开发,只能是针对每种数据库去调用相应的sql或存储过程。
      

  2.   

    上层的现在可以兼容各种数据库的有MS 的LINQ,上层通用,数据库切换后无需更改上层程序.当然其它的还有各种HIBERNATE为主的封装架构.在此之前都是要重新编写上层SQL以适应不同数据库
      

  3.   


    用java来做,比较合适,jdbc就是这样的好处。
      

  4.   

    必须使用标准SQL语句,不能使用数据库的内置函数,否则不能支持多种数据库。