现在有一个需求是这样的:要求用户在访问系统(是一个JavaWeb项目)时,在登录的时候,可以选择要登入的数据库。
大概是这样:比如事先配置好数据库A,B,C(例如,开发库,测试库和生产库,数据不同但表结构一致)。当用户访问系统主页的时候,弹出窗口,让用户选择要连接哪个数据库。
当然不同用户之间的选择是不能相互影响的。(不能用户A连接了数据库A,又来了用户B连接了数据库B,之后用户A发现数据库变成B了)
请问,如何实现?
项目使用的技术:Spring3 + Hibernate3 + SpringMVC
一点点思路:利用Spring的AbstractRoutingDataSource来动态决定要连接的数据源,使用ThreadLocal将选择的数据源放入当前线程中。但实验并未成功,还是会相互影响。
求解啊~~~~