话不多说,直接上代码+贴图。简单粗暴。
数据源配置文件:
# 数据库连接驱动
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包。切记!