一、业务场景
在平时操作数据库的时候,我们可能会涉及到切换另一个数据库的情况,但是普遍情况下我们的项目当中一般只是配置了单一数据库,这时候就需要我们配置一个两个或多个数据源的切换来实现改业务场景。
二、解决方案
2.1 db.properties配置
#数据源1
jdbc.master.driverClassName=com.mysql.jdbc.Driver
jdbc.master.url=jdbc:mysql://192.168.0.1:3306/master?useUnicode=true&characterEncoding=utf8
jdbc.master.username=root
jdbc.master.password=123456
#数据源2
jdbc.slave.driverClassName=com.mysql.jdbc.Driver
jdbc.slave.url=jdbc:mysql://192.168.0.2:3306/slave?useUnicode=true&characterEncoding=utf8
jdbc.slave.username=root
jdbc.slave.password=123456
#线程池配置
jdbc.pool.init=5
jdbc.pool.minIdle=20
jdbc.pool.maxActive=100
jdbc.testSql=SELECT 'x' FROM DUAL
2.2 spring-mybatis.xml配置
<!-- 数据源配置, 使用 BoneCP 数据库连接池 -->
<bean id="master-dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass -->
<property name="driverClassName" value="${jdbc.master.driverClassName}" />
<!-- 基本属性 url、user、password -->
<property name="url" value="${jdbc.master.url}" />
<property name="username" value="${jdbc.master.username}" />
<property name="password" value="${jdbc.master.password}" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="${jdbc.pool.init}" />
<property name="minIdle" value="${jdbc.pool.minIdle}" />
<property name="