锁定老帖子 主题:动态切换多数据源
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-19
自定义一个datasource,这个datasource在getConnection的时候,根据用户身份或者其他信息,使用不同的url连接数据库。事务什么的和以前一样配置,只是配置datasource的时候需要指向你自己的这个datasource class
|
|
返回顶楼 | |
发表时间:2007-04-19
hexiaodong.你这个datasource怎么设置的,能说详细说一下吗?
|
|
返回顶楼 | |
发表时间:2007-04-19
我现在是这样处理,在程序中,获得session public Session getLocalSession(String database) throws Exception{ String url = "jdbc:mysql://127.0.0.1/"+database; Class.forName("org.gjt.mm.mysql.Driver"); Connection con = DriverManager.getConnection(url,"root","ssuupv"); return this.getSessionFactory().openSession(con); } 这样. |
|
返回顶楼 | |
发表时间:2007-04-19
ssuupv 写道 我现在是这样处理,在程序中,获得session public Session getLocalSession(String database) throws Exception{ String url = "jdbc:mysql://127.0.0.1/"+database; Class.forName("org.gjt.mm.mysql.Driver"); Connection con = DriverManager.getConnection(url,"root","ssuupv"); return this.getSessionFactory().openSession(con); } 这样. |
|
返回顶楼 | |
发表时间:2007-04-24
ssuupv 写道 hexiaodong.你这个datasource怎么设置的,能说详细说一下吗?
<bean id="dataSource" class="com.talentsoft.common.hibernate.util.EnterpriseDataSource"> </bean> |
|
返回顶楼 | |
发表时间:2007-04-25
to: hexiaodong
仔细想想,觉得你的方法也许可行。不过如何将用户的选择传递给datasource,然后由datasource自己路由到不同数据库呢?我的想法是使用一个全局的threadlocal保存当前数据库的url,然后提供给datasource使用。 这样的确可以动态的无限制添加数据库到系统当中,而不用修改spring的配置。我打算空下来还是仔细研究一下2.0的数据库路由功能,他们的实现应该更安全,更有效吧。毕竟我们是用spring来做企业级的应用,这些算是整个系统的基石,很是重要。 能否共享一下你的datasource类呢。 |
|
返回顶楼 | |
发表时间:2007-05-17
有那么烦的吗?spring 好象已经提供了这样的处理了吧 记得是一个抽象类AbstractRoutingDataSource吧,在2.0.4版本里的吧 继承一下就行了,它抽象那层已经做好了一切,等于吃白饭的
|
|
返回顶楼 | |
发表时间:2007-05-18
to: ahua3515
項目采用的是1.2.8版本,現在還沒有仔細了解升級到2.0版本的可行性。我想也有其他很多朋友也面臨這個問題吧。不過,2.0版本的一些東西可以拿來借鑒。 |
|
返回顶楼 | |
发表时间:2007-05-24
大家回得的都是spring封装的hibernateTemplate,为什么没有人讨论一下在spring中的jdbcTemplate呢,我现在就遇到了这个问题,不仅要用hibernateTemplate进行对数据库操作,还用到了jdbcTemplate,请哪位一下,我该怎么在applicationContext.xml中配置jdbcTemplate,和怎么使用他呢,当思感恩不尽!
|
|
返回顶楼 | |