spring+mybatis多数据源配置

话不多说,直接上代码+贴图。简单粗暴。

数据源配置文件:

# 数据库连接驱动
driverClass=com.mysql.jdbc.Driver

//-------------------basedb-----------------------------------------------
#  数据库路径
basedb_jdbcUrl=jdbc:mysql://localhost:3306/basedb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
#  数据库用户名
basedb_username=root
#  数据库密码
basedb_password=root
//-------------------uservaluedb------------------------------------------
#  数据库路径
uservaluedb_jdbcUrl=jdbc:mysql://localhost:3306/uservalue?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
#  数据库用户名
uservaluedb_username=root
#  数据库密码
uservaluedb_password=root

#  检查数据库连接池中空闲连接的间隔时间
idleConnectionTestPeriod=60
#  连接池中未使用的链接最大存活时间
idleMaxAge=240
#  设置每个分区含有connection最大个数
maxConnectionsPerPartition=60
#  设置每个分区含有connection最小个数
minConnectionsPerPartition=20
#  设置每个分区数
partitionCount=3

mybatis配置文件:

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans    
                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
                        http://www.springframework.org/schema/context    
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 
                        http://www.springframework.org/schema/aop 
                        http://www.springframework.org/schema/aop/spring-aop-4.0.xsd   
                        http://www.springframework.org/schema/mvc    
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
    <!-- 自动扫描 -->  
    <context:component-scan base-package="com.test.springmybatis" />  
    <!-- 引入配置文件 -->  
    <bean id="propertyConfigurer"  
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="location" value="classpath:jdbc.properties" />  
    </bean>  
    
    
    <!-- basedb数据源 -->
    <bean id="basedb_Source" class="com.jolbox.bonecp.BoneCPDataSource"  
        destroy-method="close">  
        <property name="driverClass" value="${driverClass}" />  
        <property name="jdbcUrl" value="${basedb_jdbcUrl}"/>  
        <property name="username" value="${basedb_username}" />  
        <property name="password" value="${basedb_password}" />  
        <!-- 检查数据库连接池中空闲连接的间隔时间 -->  
        <property name="idleConnectionTestPeriod" value="${idleConnectionTestPeriod}"></property>  
        <!-- 连接池最大数量 -->  
        <property name="idleMaxAge" value="${idleMaxAge}"></property>  
        <!-- 连接池最大空闲 -->  
        <property name="maxConnectionsPerPartition" value="${maxConnectionsPerPartition}"></property>  
        <!-- 连接池最小空闲 -->  
        <property name="minConnectionsPerPartition" value="${minConnectionsPerPartition}"></property>  
        <!-- 获取连接最大等待时间 -->  
        <property name="partitionCount" value="${partitionCount}"></property>  
    </bean>
    
    <!-- uservaluedb数据源 -->
    <bean id="uservaluedb_Source" class="com.jolbox.bonecp.BoneCPDataSource"  
        destroy-method="close">  
        <property name="driverClass" value="${driverClass}" />  
        <property name="jdbcUrl" value="${uservaluedb_jdbcUrl}"/>  
        <property name="username" value="${uservaluedb_username}" />  
        <property name="password" value="${uservaluedb_password}" />  
        <!-- 检查数据库连接池中空闲连接的间隔时间 -->  
        <property name="idleConnectionTestPeriod" value="${idleConnectionTestPeriod}"></property>  
        <!-- 连接池最大数量 -->  
        <property name="idleMaxAge" value="${idleMaxAge}"></property>  
        <!-- 连接池最大空闲 -->  
        <property name="maxConnectionsPerPartition" value="${maxConnectionsPerPartition}"></property>  
        <!-- 连接池最小空闲 -->  
        <property name="minConnectionsPerPartition" value="${minConnectionsPerPartition}"></property>  
        <!-- 获取连接最大等待时间 -->  
        <property name="partitionCount" value="${partitionCount}"></property>  
    </bean>  
    
    
    <!-- basedb数据源 。不需要mybatis的配置映射文件 -->  
    <bean id="basedb_Factory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="basedb_Source" />  
        <property name="configLocation" value="classpath:conf.xml" />
        <!-- 自动扫描mapping.xml文件  --> 
        <property name="mapperLocations" value="classpath:com/test/springmybatis/mapper/basedb/*.xml"></property>   
    </bean>   
  
    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->  
    <bean id = "basedb_MapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
        <property name="basePackage" value="com.test.springmybatis.dao.basedao" />  
        <property name="sqlSessionFactoryBeanName" value="basedb_Factory"></property>  
    </bean>  
  
    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->  
    <bean id="basedb_transactionManager"  
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="basedb_Source" />
    </bean> 
    
    <!-- uservaluedb数据库。spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->  
    <bean id="uservaluedb_Factory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="uservaluedb_Source" />  
        <property name="configLocation" value="classpath:conf.xml" />
        <!-- 自动扫描mapping.xml文件  --> 
        <property name="mapperLocations" value="classpath:com/test/springmybatis/mapper/uservaluedb/*.xml"></property>   
    </bean>   
  
    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->  
    <bean id = "uservaluedb_MapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
        <property name="basePackage" value="com.test.springmybatis.dao.uservaluedao" />  
        <property name="sqlSessionFactoryBeanName" value="uservaluedb_Factory"></property>  
    </bean>  
  
    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->  
    <bean id="uservaluedb_transactionManagerSlave"  
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="uservaluedb_Source" />
    </bean> 
      
</beans> 

几个关键点:


推荐:http://blog.csdn.net/millery22/article/details/49444181

大坑:

有多个数据源,每个数据源的dao层都要在一个单独的Package中


mapper的xml文件同样也是,一个数据源对应一个mapper包。切记!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值