iteye_2131
iteye_2131
2013-10-09 17:50
浏览 554
已采纳

如何根据不同的用户使用不同的jdbcTemplate数据源?

公司有一项目,使用的是spring JDBCTemplate 作为数据库连接池,现在需求变更了,需要根据不同的用户访问不同的数据源。
根据用户找出数据库名很容易办到,现在的问题是如何如何在不同的request里面使用不同的数据源?或者说 jdbctemplate 如何做到多数据源?
谢谢大家了。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • steven_cheng
    steven_cheng 2013-10-15 13:18
    已采纳

    org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource这个类就是解决这种问题的。
    具体说,实现 protected Object determineCurrentLookupKey()这个方法返回一个key,protected DataSource determineTargetDataSource()这个方法根据你的key找出数据源。
    一般是用ThreadLocal保存一个标志,再用这个类,根据标志找出TargetDataSource。对于web应用,一般用filter,请求开始时放入标志,在请求结束后清除标志。

    点赞 评论
  • lirenzuo
    匠心零度 2013-10-20 22:23

    嗯嗯 ,学习到了,明白了!!!!!!

    点赞 评论

相关推荐