我们可能需要在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框架以支持多个数据源需要对Spring的bean管理、Hibernate的数据库连接以及Struts2的请求处理有深入理解。这个过程包括定义和配置多个DataSource bean,调整Hibernate和Struts2的配置以适应不同的...
3. **Spring配置**:applicationContext.xml文件中定义了Bean的配置,包括Service、DAO、实体类等,以及数据源和事务管理的配置。 4. **Hibernate配置**:hibernate.cfg.xml文件包含了数据库连接信息,实体类的映射...
SSH动态切换数据源是一种在Java Web开发中处理多数据库连接切换的技术,主要应用于Spring、Struts和Hibernate(SSH)这三大框架集成的项目。SSH框架是企业级应用开发的常用组合,提供了强大的业务逻辑处理和数据持久...
SSH框架,全称为Struts+Spring+Hibernate,是Java Web开发中的一个经典组合,它将MVC(Model-View-Controller)设计...你可以从配置文件、实体类、DAO层、Service层、Action层等多个方面入手,逐步探索SSH框架的魅力。
本资料提供了SSH框架的使用源代码,旨在帮助开发者理解并熟练掌握SSH框架的实践应用。 1. **Struts2**:Struts2是基于MVC设计模式的Web应用框架,它继承了Struts1的优点,并引入了拦截器(Interceptor)机制,使得...
在压缩包中,文件名为"ssh框架"可能包含的是整个项目的源代码,包括Struts2的Action类、Spring的配置文件(如applicationContext.xml)、Hibernate的实体类和映射文件(hbm.xml),以及可能的DAO(数据访问对象)和...
SSH框架是Java开发中常用的三大框架——Spring、Struts和Hibernate的组合,它们分别负责不同层面的应用管理。本文将深入探讨SSH框架的核心概念、工作原理以及如何在项目中使用它们。 1. **Spring框架**: - **核心...
【SSH框架详解】 SSH框架,即Struts2、Spring和Hibernate的组合,是Java Web开发中常用的一种MVC(Model-View-Controller)架构模式。这个框架集合了三种技术的优势,为开发人员提供了高效、灵活的后端开发环境,...
理解并掌握SSH框架的源代码,有助于开发者更好地进行Java Web应用的开发和维护,提升项目质量和开发效率。同时,随着Spring Boot和Spring Cloud的崛起,SSH框架在现代开发中的使用逐渐减少,但它的设计理念和技术...
在“SSH框架数据添加”中,我们主要关注的是如何通过SSH框架向数据库中插入新的数据。 首先,Struts2作为控制器,负责接收用户请求并转发到相应的业务逻辑层。在数据添加的场景下,通常会有一个Action类,该类包含...
这个“网上商城源代码”使用SSH框架,提供了全面的功能实现,包括用户管理、商品展示、购物车、订单处理等核心业务。 Spring框架是整个应用的中枢,负责依赖注入(Dependency Injection,DI)和面向切面编程...
下面将详细介绍SSH框架整合的相关知识点。 1. **Spring框架**:Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能。在SSH整合中,Spring主要作为应用的核心,负责管理其他...
5. **配置Hibernate**:创建Hibernate的配置文件(如`hibernate.cfg.xml`),定义实体类和数据源。 6. **整合连接**:在Spring中配置Hibernate SessionFactory,使Spring管理Hibernate事务。 7. **测试运行**:编写...
在“SSH框架源代码(最简洁最干净的代码)注解方式”这个资源中,你可能会看到如何使用注解来替代XML配置,使代码更易于理解和维护。例如,Action类不再需要在struts.xml中定义,而是通过`@Action`注解直接声明;...
4. **MVC模式**:SSH框架中的Struts实现了MVC设计模式,将业务逻辑、数据和用户界面分离,使得代码结构清晰,易于维护和扩展。 5. **数据库脚本**:在MySQL中,创建和管理数据库表的SQL脚本需要根据实际需求编写。...
在设计和实现这样的论坛系统时,SSH框架的组合可以提供良好的结构支持。Spring的事务管理确保了数据的一致性,Struts的视图控制使得界面交互流畅,而Hibernate则简化了数据库操作。通过合理地划分模型、视图和控制器...
3. 配置Hibernate:建立Hibernate的配置文件,定义实体类和数据表的关系,配置数据源和SessionFactory,实现DAO层的操作。 4. 整合三者:配置Struts的插件以实现Spring和Hibernate的无缝连接,如使用Spring的...