现在有以下3个数据源:
jdbc1.driver=oracle.jdbc.driver.OracleDriver
jdbc1.url=jdbc:oracle:thin:@127.0.0.1:1521:jdbc1
jdbc1.user=jdbc1
jdbc1.pwd=jdbc1
jdbc1.validationQuery=select 1 from dual
jdbc1.pagesize=12
jdbc2.jdbc.driver = oracle.jdbc.driver.OracleDriver
jdbc2.jdbc.url = jdbc:oracle:thin:@127.0.0.1:152:jdbc2
jdbc2.jdbc.user=jdbc2
jdbc2.jdbc.pwd=jdbc2
jdbc2.jdbc.validationQuery=select 1 from dual
jdbc2.jdbc.pagesize=12
jdbc3.driver=oracle.jdbc.driver.OracleDriver
jdbc3.url=jdbc:oracle:thin:@127.0.0.1:1521:jdbc3
jdbc3.user=jdbc3
jdbc3.pwd=jdbc3
jdbc3.validationQuery=select 1 from dual
jdbc3.pagesize=12
spring 配置文件配置数据源:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
destroy-method="close">
destroy-method="close">
destroy-method="close">
classpath*:resource/hibernate
${hibernate.dialect}
${hibernate.show_sql}
${hibernate.cache.use_query_cache}
${hibernate.cache.provider_class}
${hibernate.query.factory_class}
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
expression="execution(* *..*ServiceImpl.*(..))" />
expression="execution(* *..*ManagerImpl.*(..))" />
expression="execution(* *..*Dao.*(..))" />
写好一个类继承JdbcGenericDao继承JdbcTemplate,JdbcTemplate需要传人dataSource;
public class JdbcGenericDao extends JdbcTemplate {
protected Log log = LogFactory.getLog(getClass());
protected LobHandler lobHandler;
public void setLobHandler(LobHandler lobHandler) {
this.lobHandler = lobHandler;
}
}
2.给项目不同模块dao类(如:FundInfoDao,CommonLog,FundDirectDao)继承JdbcGenericDao,并传人指定的dataSource;
3.总结
接口的多态性,spring整合jdbc的JdbcTemplate,需要dataSource 的bean,这个bean具体怎么实现不管,只要符合规定就可以;