`
ultrang
  • 浏览: 59102 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
我们可能需要在Java EE项目中用到多数据源,不同的功能访问不同的数据库。具体怎么做呢?
1.数据源的定义部分: 在spring的配置文件中增加如下配置:
<jee:jndi-lookup id="ds1" jndi-name="MainDataSource" />
	 <jee:jndi-lookup id="ds2" jndi-name="DataCenterSource" />
	 <!-- 多数据源映射 -->
	<bean id="dataSource" class="com.example.db.DynamicDataSource">
		<property name="targetDataSources">
			<map key-type="com.example.db.DataSourceType">
				<entry key="SP" value-ref="ds1" />
				<entry key="DC" value-ref="ds2" />
			</map>
		</property>
		<property name="defaultTargetDataSource" ref="ds1" />
	</bean>

上面这段配置如何理解呢? 首先我们定义了两个数据源ds1和但是ds2,他们对应的jndi-name分别为MainDataSource,DataCenterSource(我们可以在中间件或tomcat的链接池中定义他们的jndi-name);然后将这两个数据源绑定到一个动态数据源切换的dataSource上,并且ds1和ds2对应的调用key为SP和DC,同时,默认的数据源为ds1。
代码在执行的时候,指定的数据源为dataSource,通过传入的key来实现数据源的切换。
2.DynamicDataSource的实现
DynamicDataSource继承自spring的动态数据源路由
public class DynamicDataSource extends AbstractRoutingDataSource

并重写其中的determineCurrentLookupKey方法。根据你的需要来切换数据源。
我们这里采用的是通过线程变量来给key赋予不同的值。
{ renturn DBContextHolder.getDBkey()}//这个方法为自定义,通过线程变量来实现。

3.动态数据源的使用

默认情况下,如果不指定对应的参数,将会使用默认的数据源MainDataSource。
可以通过下面的方式指定其他的数据源:
DBContextHolder.setDataBase("DC");

那么在该线程中执行的后续操作的数据源将会使用DC对应的数据源。
分享到:
评论

相关推荐

    ssh框架有关数据源的配置

    关于ssh框架有关数据源的配置的详细资料哦,不下别后悔啊!

    SSH配置多个数据源

    总结来说,配置SSH框架以支持多个数据源需要对Spring的bean管理、Hibernate的数据库连接以及Struts2的请求处理有深入理解。这个过程包括定义和配置多个DataSource bean,调整Hibernate和Struts2的配置以适应不同的...

    SSH框架搭建源码

    3. **Spring配置**:applicationContext.xml文件中定义了Bean的配置,包括Service、DAO、实体类等,以及数据源和事务管理的配置。 4. **Hibernate配置**:hibernate.cfg.xml文件包含了数据库连接信息,实体类的映射...

    SSH动态切换数据源

    SSH动态切换数据源是一种在Java Web开发中处理多数据库连接切换的技术,主要应用于Spring、Struts和Hibernate(SSH)这三大框架集成的项目。SSH框架是企业级应用开发的常用组合,提供了强大的业务逻辑处理和数据持久...

    SSH框架项目源代码

    SSH框架,全称为Struts+Spring+Hibernate,是Java Web开发中的一个经典组合,它将MVC(Model-View-Controller)设计...你可以从配置文件、实体类、DAO层、Service层、Action层等多个方面入手,逐步探索SSH框架的魅力。

    ssh框架使用源代码

    本资料提供了SSH框架的使用源代码,旨在帮助开发者理解并熟练掌握SSH框架的实践应用。 1. **Struts2**:Struts2是基于MVC设计模式的Web应用框架,它继承了Struts1的优点,并引入了拦截器(Interceptor)机制,使得...

    ssh框架源代码

    在压缩包中,文件名为"ssh框架"可能包含的是整个项目的源代码,包括Struts2的Action类、Spring的配置文件(如applicationContext.xml)、Hibernate的实体类和映射文件(hbm.xml),以及可能的DAO(数据访问对象)和...

    SSH框架源代码

    SSH框架是Java开发中常用的三大框架——Spring、Struts和Hibernate的组合,它们分别负责不同层面的应用管理。本文将深入探讨SSH框架的核心概念、工作原理以及如何在项目中使用它们。 1. **Spring框架**: - **核心...

    基于SSH框架的员工管理系统

    【SSH框架详解】 SSH框架,即Struts2、Spring和Hibernate的组合,是Java Web开发中常用的一种MVC(Model-View-Controller)架构模式。这个框架集合了三种技术的优势,为开发人员提供了高效、灵活的后端开发环境,...

    ssh框架的源代码

    理解并掌握SSH框架的源代码,有助于开发者更好地进行Java Web应用的开发和维护,提升项目质量和开发效率。同时,随着Spring Boot和Spring Cloud的崛起,SSH框架在现代开发中的使用逐渐减少,但它的设计理念和技术...

    SSH框架数据添加

    在“SSH框架数据添加”中,我们主要关注的是如何通过SSH框架向数据库中插入新的数据。 首先,Struts2作为控制器,负责接收用户请求并转发到相应的业务逻辑层。在数据添加的场景下,通常会有一个Action类,该类包含...

    网上商城源代码使用ssh框架

    这个“网上商城源代码”使用SSH框架,提供了全面的功能实现,包括用户管理、商品展示、购物车、订单处理等核心业务。 Spring框架是整个应用的中枢,负责依赖注入(Dependency Injection,DI)和面向切面编程...

    Java SSH 框架整合,学习源码

    下面将详细介绍SSH框架整合的相关知识点。 1. **Spring框架**:Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能。在SSH整合中,Spring主要作为应用的核心,负责管理其他...

    SSH框架整合jar包

    5. **配置Hibernate**:创建Hibernate的配置文件(如`hibernate.cfg.xml`),定义实体类和数据源。 6. **整合连接**:在Spring中配置Hibernate SessionFactory,使Spring管理Hibernate事务。 7. **测试运行**:编写...

    SSH框架源代码(最简洁最干净的代码)注解方式

    在“SSH框架源代码(最简洁最干净的代码)注解方式”这个资源中,你可能会看到如何使用注解来替代XML配置,使代码更易于理解和维护。例如,Action类不再需要在struts.xml中定义,而是通过`@Action`注解直接声明;...

    毕业设计 基于SSH框架的系统

    4. **MVC模式**:SSH框架中的Struts实现了MVC设计模式,将业务逻辑、数据和用户界面分离,使得代码结构清晰,易于维护和扩展。 5. **数据库脚本**:在MySQL中,创建和管理数据库表的SQL脚本需要根据实际需求编写。...

    论坛系统(ssh框架)

    在设计和实现这样的论坛系统时,SSH框架的组合可以提供良好的结构支持。Spring的事务管理确保了数据的一致性,Struts的视图控制使得界面交互流畅,而Hibernate则简化了数据库操作。通过合理地划分模型、视图和控制器...

    黑马SSH框架整合实战教程源代码

    3. 配置Hibernate:建立Hibernate的配置文件,定义实体类和数据表的关系,配置数据源和SessionFactory,实现DAO层的操作。 4. 整合三者:配置Struts的插件以实现Spring和Hibernate的无缝连接,如使用Spring的...

Global site tag (gtag.js) - Google Analytics