假设有两台数据库服务器:192.168.0.1(写) 和192.168.0.2(读)
那么在applicationContext.xml中应配置两个数据源,一个读,一个写:
- <bean id="dataSource"
- class="com.alibaba.druid.pool.DruidDataSource"
- destroy-method="close"
- init-method="init"
- lazy-init="false"
- p:url="${datasource.url}"
- p:username="${datasource.username}"
- p:password="${datasource.password}"
- p:maxActive="200"
- p:minIdle="50"
- p:maxWait="10000"
- p:testWhileIdle="true"
- p:validationQuery="select sysdate()"
- p:filters="stat"
- />
- <bean id="template" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource" />
- <bean id="dataSource1"
- class="com.alibaba.druid.pool.DruidDataSource"
- destroy-method="close"
- init-method="init"
- lazy-init="false"
- p:url="${datasource.read.url}"
- p:username="${datasource.read.username}"
- p:password="${datasource.read.password}"
- p:maxActive="200"
- p:minIdle="50"
- p:maxWait="10000"
- p:testWhileIdle="true"
- p:validationQuery="select sysdate()"
- p:filters="stat"
- />
- <bean id="templateRead" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource1" />
然后在dao.java中配置两个jdbcTemplate:
- @Autowired
- private JdbcTemplate template;
- @Autowired
- private JdbcTemplate templateRead;
读操作的时候用templateRead,写操作的时候用template
ps:数据库的同步操作将在后续贴出