spring动态配置多数据源

spring动态配置多数据源

ID:40491573

大小:101.85 KB

页数:30页

时间:2019-08-03

spring动态配置多数据源_第1页
spring动态配置多数据源_第2页
spring动态配置多数据源_第3页
spring动态配置多数据源_第4页
spring动态配置多数据源_第5页
资源描述:

《spring动态配置多数据源》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、起因:在当前我手上的一个项目中需要多个数据源,并且来自于不同类型的数据库...因为很多历史原因.这个项目的住数据源是MySQL,整个系统的CURD都是操作的这个数据库.但是还有另外两个用于数据采集的数据库:MSSQL,ACCESS.还好只是用于数据采集,在事务上可以不要跨数据库了,这一点节省了好多的工作量.环境:我搭建的测试环境是spring2.5.6+hibernate3.2思路:动态切换数据源确切的来说是在同一类型数据库的情况下的。意思就是说,在系统中的使用的数据库分布在多台数据库服务器或者在同台服务器上的多个数据库.在运行时期间根据某种标识符来动态的选择当前操作的数据库.1.数据源

2、是相同类型的数据库:一个SessionFactory+动态数据源+一个事务管理器2.数据源是不同类型的数据库:根据类型配置多套SessionFactory模拟:两个mysql数据源+一个Access数据源实现:1.切换数据源需要标识符,标识符是Object类型packagelhp.example.context;publicenumDBType{dataSource1,dataSource2;}2.然后创建一个用于切换数据源(设置或者获得上下文)的工具类复制代码packagelhp.example.context;publicclassContextHolder{privatestati

3、cfinalThreadLocalholder=newThreadLocal();publicstaticvoidsetDbType(DBTypedbType){holder.set(dbType);}publicstaticDBTypegetDbType(){return(DBType)holder.get();}publicstaticvoidclearDbType(){holder.remove();}}复制代码3.创建动态数据源类,继承org.springframework.jdbc.datasource.lookup.AbstractRoutin

4、gDataSource这个类.复制代码packagelhp.example.context;importjava.util.logging.Logger;importorg.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;publicclassDynamicDataSourceextendsAbstractRoutingDataSource{publicstaticfinalLoggerlogger=Logger.getLogger(DynamicDataSource.class.toString());@

5、OverrideprotectedObjectdetermineCurrentLookupKey(){DBTypekey=ContextHolder.getDbType();//获得当前数据源标识符//logger.info("当前数据源:"+key);returnkey;}}复制代码4.然后配置多个数据源复制代码

6、iver"/>

7、ertyname="jdbcUrl"value="jdbc:mysql://127.0.0.1:3306/lms"/>

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。