假设有两台数据库服务器: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:数据库的同步操作将在后续贴出