SSH架构操作多数据库

SSH架构操作多数据库时,通常使用动态数据源来切换不同的数据库。这涉及到配置多个数据源,例如 dataSourceA 和 dataSourceB,以及创建一个动态数据源(DynamicDataSource)。通过在Web.xml中配置过滤器,如DynamicDataSourceFilter,根据请求路径决定使用哪个数据源,并使用DatabaseContextHolder工具类进行切换。过滤器在OpenSessionInViewFilter之前执行,确定数据源,然后通过Spring配置文件完成SessionFactory的设置。
摘要由CSDN通过智能技术生成

SSH架构操作多数据库

注意事项

建议:不要多个系统同时对一个数据库进行增删改操作,但是可以有多个系统同时查询同一个数据库。

原理分析

绝大多数情况下,我们使用SSH(Struts+spring+hibernate)架构只需要操作一个数据库,操作数据库原理为:

在spring的配置文件中,配置一个数据源DataSource,数据源中配置一个数据库连接池;

在spring的配置文件中,配置一个会话工厂SessionFactory,再将数据源DataSource关联到会话工厂sessionFactory上;

在持久层(Dao层),使用spring注入SessionFactory对象,使用SessionFactory创建Session,在进行数据库操作。

其中,Spring中DataSource和sessionFactory的配置如下:

<!-- 数据源 -->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close">

        <property name="driverClass" value="com.mysql.jdbc.Driver" />

        <property name="jdbcUrl"value="jdbc:mysql:///**数据库名称**?characterEncoding=utf8" />

        <property name="user" value="A_username" />

        <property name="password" value="A_password"/>

    </bean>

<!-- 配置SessionFactory(与Hibernate整合) -->

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <!-- 指定Hibernate配置文件路径 -->

        <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>

        <!-- 指定数据库连接池 -->

        <property name="dataSource" ref="dataSource"></property>

    </bean>

 

由上述所说,我们可以简单的表示为:

        

这是spring提供的操作单个数据库的方法,spring同时还提供了操作多数据库的方式(此处以两个数据库为例),其原理为:


         此处我引入一个动态数据源的概念,其实就是动态的切换数据源,先看一下动态数据源的用法,其实原理也就不言而喻了。

         <!-- A数据源 -->

    <bean id="dataSourceA" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close">

        <property name="driverClass" value="com.mysql.jdbc.Driver" />

        <prope

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值