做一个B/S系统,想让他支持多种数据库,怎么样才能不用改程序,只需要进行一些设置之后就可以使用不同数据库的SQL来进行不同的数据库访问呢?
这是我的一个配置文件.关于数据库的设置都在这里
ConnectionPool=JivePool
#ConnectionPool=WeblogicPool
#weblogic configurations
WeblogicDataSource=dataSource
#jive.properties -- Sat Oct 07 14:37:54 CST 2000
#Sat Oct 07 14:37:54 CST 2000
DbConnectionDefaultPool.driver=com.jnetdirect.jsql.JSQLDriver
DbConnectionDefaultPool.logPath=./jiveDbLog.log
DbConnectionDefaultPool.minConnections=5
DbConnectionDefaultPool.username=sa
DbConnectionDefaultPool.password=
DbConnectionDefaultPool.maxConnections=100
DbConnectionDefaultPool.connectionTimeout=.5
DbConnectionDefaultPool.server=jdbc:JSQLConnect://127.0.0.1:1433/database=
DbSearchIndexer.updateInterval=600000
DbSearchIndexer.lastIndexed=970814173080
factory方式啊
把SQL语句做一个封装.
从两楼的配置文件中读入数据库属性,再选择生成相应的Class来处理啊.
1)没有可以适合所有数据库的通用的方法,如果你要使用象limit这样的扩展SQL语法的话
2)建议你先整理一下, 到底需要适合几种数据库
3)allan1031(岚月影)说的方法应该是最正确的解决办法 ---- 我们不能要求同一份代码可是适应所有情况, 但是我们要保证在需要修改时将修改限制在尽可能小的范围之内.
严重支持:zez(鹤清风 为了老婆多挣钱 !)
修改
db.properties
文件就可以了
不用改你的bean代码,我认为这是个很好的方式。
用数据仓库,建立一大的数据库界面
那就只用最基本的sql语句.
只能这样了
那些各个dbms的扩展只能丢弃了.因为你要通用,那没办法呀...
select * from xx where x= x
这样的语句哪个数据库都可以吧 ?
不要想通用所有数据库还要通用所有sql扩展,可能吗 ?
实在要多数据库兼容,用EJB 中的 CMP 。