美文网首页
SSM项目JdbcTemplate多数据源配置实现

SSM项目JdbcTemplate多数据源配置实现

作者: 老街老街 | 来源:发表于2020-05-13 14:37 被阅读0次
  1. 配置文件中配置两个数据库的连接信息
    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

  1. 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.url}" /> <property name="username" 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.url}" /> <property name="username" 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;

相关文章

网友评论

      本文标题:SSM项目JdbcTemplate多数据源配置实现

      本文链接:https://www.haomeiwen.com/subject/mcpnnhtx.html