有时候需要我们连接多个数据库操作,如果不考虑事务,可以参考以下的配置:(考虑事务需要使用Spring路由器数据源方法,需要继承AbstractRoutingDataSource这里不做详解)
1 对应 的mapper接口 注意包名的命名规则 (不然扫描包的时候会扫到多个包,一定要保证只扫到某个包)
2 对用的mapper.xml (保证一次只扫描某个文件夹)
3 spring 的数据源配置
<!--配置和创建jdbc数据源(Boomsing主库) -->
<bean id="dataSourceBoomsing" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<!-- 本地 -->
<!-- <property name="url" value="jdbc:mysql://xxx:20006/boomsing?characterEncoding=UTF-8" />
<property name="username" value="" />
<property name="password" value="" /> -->
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="10" />
<property name="maxActive" value="100" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="10000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="300000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="600000" />
<property name="testWhileIdle" value="true" />
</bean>
<!-- myibatis配置,使其支持注解和配置文件形式 -->
<bean id="sqlSessionFactoryBoomsing" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSourceBoomsing" />
<property name="configLocation" value="classpath:mybatis.xml" />
<property name="typeAliasesPackage" value="com.tecno.Boomsing.model.boomsing" />
<property name="mapperLocations" value="classpath:boomsing-mapping/*mapper.xml" />
</bean>
<bean name="mapperScannerConfigurerBoomsing"
class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.tecno.Boomsing.mapper.boomsing" />
<property name="sqlSessionFactory" ref="sqlSessionFactoryBoomsing"></property>
</bean
<!-- 产品主库 -->
<bean id="dataSourceMusic" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<!-- 本地 -->
<!-- <property name="url" value="jdbc:mysql://xxx/palmmusic_item?characterEncoding=UTF-8" />
<property name="username" value="" />
<property name="password" value="" /> -->
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="10" />
<property name="maxActive" value="100" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="10000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="300000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="600000" />
<property name="testWhileIdle" value="true" />
</bean>
<!-- myibatis配置,使其支持注解和配置文件形式 -->
<bean id="sqlSessionFactoryMusic" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSourceMusic" />
<property name="configLocation" value="classpath:mybatis.xml" />
<property name="mapperLocations" value="classpath:mybatis-mapping/*mapper.xml" />
</bean>
<bean name="mapperScannerConfigurerMusic" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.tecno.Boomsing.mapper.palmmusicitem" />
<property name="sqlSessionFactory" ref="sqlSessionFactoryMusic"></property>
</bean>
<!--事务注解-->
<tx:annotation-driven/>
<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 这里只能引用一个数据源 所以不能支持所有的数据源 需要用spring的路由器数据源 -->
<property name="dataSource" ref="dataSourceMusic" />
</bean>
4 你需要对哪个数据库操作时,操作对应的mapper即可。