首先说一下我的需求:数据库结构都是一样,但具体有多少个数据库不确定(视具体用户而定),用户操作那个数据库要根据登录的时候进行选择,这个信息肯定是保存在用户的登录信息中(例如:session)当有不同的用户需要操作不同的数据库时(根据登录时的选择或指定),什么时候切换数据库?
是在service层还是dao层?
这个信息怎么传给层中的方法?
如果每个方法都加一个参数这样不太好吧?另外我用的Spring+struts~
是在service层还是dao层?
这个信息怎么传给层中的方法?
如果每个方法都加一个参数这样不太好吧?另外我用的Spring+struts~
com.test.dao.oracle 包放 UserDaoOracle.java 的 dao 实现
com.test.dao.mysql 包放 UserDaoMySQL.java 的 dao 实现
...当然了,由于反射产生对象的速度比较慢,建议增加适当的缓存,或者 Dao 使用单例。
谢谢解答。不过大大可能理解错我的意思了~~~并不是指多个数据库类型。我这里只有一个sql server2000,我指的是里面的数据库之间的切换。
http://www.blogjava.net/bigbigtooth/archive/2007/11/19/85756.html
谢谢你的回复,如果按照配置的动态载入来做,有下面几个考虑:
1.每次新建用户都需要动态生成Spring的XML配置文件
2.如果用户很多的话,那文件也会很多
3.要修改SPRING的源代码我想的是,配置文件都一样,只是数据库连接URL中的数据库名需要根据用户名来变动,有没有更好的方法啊?
((DriverManagerDataSource)getBean("dataSource")).setUrl("");
运行时强制转换