Spring+mybatis的工程内,需要连接oracle+Mysql数据库,增删查改都要同时执行


    <context:component-scan base-package="com.test1"/>
    <context:component-scan base-package="com.test2"/>
    <context:component-scan base-package="com.test3"/>

    
    <bean id="test1Service" class="com.test1.service.Test1Service" init-method="findList"/>
    <bean id="test2Service" class="com.test2.service.Test2Service" init-method="findList"/>
    <bean id="test3Service" class="com.test3.service.Test3Service" init-method="findList"/>



    
    <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath:jdbc.propertiesvalue>
            list>
        property>
        <property name="fileEncoding" value="UTF-8"/>
    bean>
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
        <property name="properties" ref="configProperties"/>
    bean>

     
    <bean id="dataSource_oracle" class="org.apache.commons.dbcp.BasicDataSource"
          destroy-method="close">
        <property name="driverClassName" value="${driverClasss}"/>
        <property name="url" value="${jdbcUrl}"/>
        <property name="username" value="test1"/>
        <property name="password" value="test1"/>
        
        <property name="initialSize" value="${initialSize}">property>
        
        <property name="maxActive" value="${maxActive}">property>
        
        <property name="maxIdle" value="${maxIdle}">property>
        
        <property name="minIdle" value="${minIdle}">property>
        
        <property name="maxWait" value="${maxWait}">property>
    bean>

    
    <bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource_oracle"/>
        
        <property name="mapperLocations" value="classpath:mapping/test1/*.xml">property>
    bean>

    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.test1.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory1">property>
    bean>

     
    <bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource_oracle"/>
    bean>

    
    <tx:annotation-driven transaction-manager="transactionManager1"/>


     
    <bean id="dataSource_sq1" class="org.apache.commons.dbcp.BasicDataSource"
          destroy-method="close">
        <property name="driverClassName" value="${sq1DriverClasss}"/>
        <property name="url" value="${sq1JdbcUrl}"/>
        <property name="username" value="${sq1Username}"/>
        <property name="password" value="${sq1Password}"/>
        
        <property name="initialSize" value="${initialSize}">property>
        
        <property name="maxActive" value="${maxActive}">property>
        
        <property name="maxIdle" value="${maxIdle}">property>
        
        <property name="minIdle" value="${minIdle}">property>
        
        <property name="maxWait" value="${maxWait}">property>
    bean>
    
    <bean id="sqlSessionFactorySq1" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource_sq1"/>
        
        <property name="mapperLocations" value="classpath:mapping/test2/*.xml">property>
    bean>

    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.test2.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactorySq1">property>
    bean>

     
    <bean id="transactionManagerSq1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource_sq1"/>
    bean>

    
    <tx:annotation-driven transaction-manager="transactionManagerSq1"/>

     
    <bean id="dataSource_invt" class="org.apache.commons.dbcp.BasicDataSource"
          destroy-method="close">
        <property name="driverClassName" value="${sq2DriverClasss}"/>
        <property name="url" value="${sq2JdbcUrl}"/>
        <property name="username" value="${sq2Username}"/>
        <property name="password" value="${sq2Password}"/>
        
        <property name="initialSize" value="${initialSize}">property>
        
        <property name="maxActive" value="${maxActive}">property>
        
        <property name="maxIdle" value="${maxIdle}">property>
        
        <property name="minIdle" value="${minIdle}">property>
        
        <property name="maxWait" value="${maxWait}">property>
    bean>
     
    <bean id="sqlSessionFactorySq2" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource_sq2"/>
        
        <property name="mapperLocations" value="classpath:mapping/test3/*.xml">property>
    bean>

    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.test3.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactorySq2">property>
    bean>

     
    <bean id="transactionManagerSq2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource_sq2"/>
    bean>

     
    <tx:annotation-driven transaction-manager="transactionManagerSq2"/>

总结:配置文件要两套,操作两个库的mapper.xml和dao要分包放。

<bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource_oracle"/>
        
        <property name="mapperLocations" value="classpath:mapping/test1/*.xml">property>
    bean>

    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.test1.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory1">property>
    bean>
<bean id="sqlSessionFactorySq1" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource_sq1"/>
        
        <property name="mapperLocations" value="classpath:mapping/test2/*.xml">property>
    bean>

    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.test2.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactorySq1">property>
    bean>

应该能看出差别了
在相应的service层分别注入操作两个库的不同的Dao,执行增删查改功能即可。

你可能感兴趣的:(Mybatis,mysql,oracle)