- 配置文件中配置两个数据库的连接信息
jdbc.properties:
db1.jdbc.driver=com.mysql.jdbc.Driver
db1.jdbc.url=jdbc:mysql://192.168.0.100:3306/db1?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
db1.jdbc.username=root
db1.jdbc.password=123456
db2.jdbc.driver=com.mysql.jdbc.Driver
db2.jdbc.url=jdbc:mysql://192.168.0.101:3306/db2?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
db2.jdbc.username=root
db2.jdbc.password=123456
- SpringMVC主配置文件中配置双数据源信息:
(一)首先配置加载库连接信息:
<context:property-placeholder location="/WEB-INF/jdbc.properties"/>
(二)再配置双数据源:
<bean id="dbOneDataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="{db1.jdbc.username}" />
<property name="password" value="${db1.jdbc.password}" />
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="60" />
<property name="maxWait" value="60000" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 1 from dual" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
<property name="filters" value="stat" />
</bean>
<bean id="dbTwoDataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="{db2.jdbc.username}" />
<property name="password" value="${db2.jdbc.password}" />
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="60" />
<property name="maxWait" value="60000" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 1 from dual" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
<property name="filters" value="stat" />
</bean>
两个数据源都采用阿里巴巴的Druid数据库连接池,连接池配置请参考druid官网,案例使用druid的推荐配置
(三)配置JdbcTemplate模板
<!-- 配置db1 Jdbc模板 -->
<bean id="dbOneJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dbOneDataSource"></property>
</bean>
<!-- 配置db2 Jdbc模板 -->
<bean id="dbTwoJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dbTwoDataSource"></property>
</bean>
3、使用数据源
在需要使用数据源的DAO类中,注入要使用的数据源即可
@Autowired
@Qualifier("dbOneJdbcTemplate")
private JdbcTemplate dbTwojdbcTemplate;
@Autowired
@Qualifier("dbTwoJdbcTemplate")
private JdbcTemplate dbOneJdbcTemplate;
网友评论