Spring多数据源配置和使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xujiangdong1992/article/details/79924095

1、配置信息

    <!--==============================bpt_mobdb数据库配置============================-->

    <bean id="bpt_mobdb" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver">
        </property>
        <property name="url"
                  value="${database.bpt.url}">
        </property>
        <property name="username" value="${database.bpt.username}"></property>
        <property name="password" value="${database.bpt.password}"></property>
        <property name="maxIdle" value="${maxIdle}"/>
        <property name="minIdle" value="${minIdle}"/>
        <property name="maxActive" value="${maxActive}"/>
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}"/>
        <property name="maxWait" value="${maxWait}"/>
        <property name="validationQuery">
            <value>SELECT 1</value>
        </property>
    </bean>

    <bean id="bptSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="bpt_mobdb"/>
        <property name="configLocation" value="classpath:com/qingqing/bpt/META-INF/mybatis/mybatis-config.xml"/>
    </bean>
    <!--   事务配置   -->
    <bean id="dataTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="bpt_mobdb"/>
        <!--   事务别称   使用时 @Transactional("bpt_mobdb")  不同数据源需要配不同的事务 -->
        <qualifier value="bpt_mobdb"/>
    </bean>
    <tx:annotation-driven transaction-manager="dataTransactionManager"/>
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="bptSqlSessionFactory"/>
        <!--   每个数据源对应的mapper,再该mapper下可以直接操作该数据源   -->
        <property name="basePackage" value="com.qingqing.bpt.mapper"/>
    </bean>

        <!--==============================dim_mobdb数据库配置============================-->

    <bean id="dim_mobdb" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver">
        </property>
        <property name="url" value="${database.dim.url}"></property>
        <property name="username" value="${database.dim.username}"></property>
        <property name="password" value="${database.dim.password}"></property>

        <property name="maxIdle" value="${maxIdle}"/>
        <property name="minIdle" value="${minIdle}"/>
        <property name="maxActive" value="${maxActive}"/>
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}"/>
        <property name="maxWait" value="${maxWait}"/>
        <property name="validationQuery">
            <value>SELECT 1</value>
        </property>
    </bean>

    <bean id="dimSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dim_mobdb"/>
        <property name="configLocation" value="classpath:com/qingqing/bpt/META-INF/mybatis/mybatis-config.xml"/>
    </bean>

    <tx:annotation-driven transaction-manager="dim_dataTransactionManager"/>
    <bean id="dim_dataTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dim_mobdb"/>
        <qualifier value="dim_mobdb"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="dimSqlSessionFactory"/>
        <property name="basePackage" value="com.qingqing.dim.mapper"/>
    </bean>

    <!--==============================conf_mobdb数据库配置============================-->

    <bean id="conf_mobdb" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver">
        </property>
        <property name="url" value="${database.conf.url}"></property>
        <property name="username" value="${database.conf.username}"></property>
        <property name="password" value="${database.conf.password}"></property>

        <property name="maxIdle" value="${maxIdle}"/>
        <property name="minIdle" value="${minIdle}"/>
        <property name="maxActive" value="${maxActive}"/>
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}"/>
        <property name="maxWait" value="${maxWait}"/>
        <property name="validationQuery">
            <value>SELECT 1</value>
        </property>
    </bean>

    <bean id="confSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="conf_mobdb"/>
        <property name="configLocation" value="classpath:com/qingqing/bpt/META-INF/mybatis/mybatis-config.xml"/>
    </bean>

    <tx:annotation-driven transaction-manager="conf_dataTransactionManager"/>
    <bean id="conf_dataTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="conf_mobdb"/>
        <qualifier value="conf_mobdb"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="confSqlSessionFactory"/>
        <property name="basePackage" value="com.qingqing.conf.mapper"/>
    </bean>

2、使用

不同数据源关联操作:     库名.表名
select a.*,b.*  bpt_mobdb.tableA a left join dim_mobdb.tableB b on a.id = b.user_id

猜你喜欢

转载自blog.csdn.net/xujiangdong1992/article/details/79924095