<!-- 主庫 --> <Resource name="jdbc/master" auth="Container" maxActive="100" maxIdle="30" maxWait="10000" factory="com.alibaba.druid.pool.DruidDataSourceFactory" filters="stat" useGlobalDataSourceStat="true" defaultTransactionIsolation="READ_COMMITTED" validationQuery="select 1 from DUAL" type="javax.sql.DataSource" username="test" password="test" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_test?useUnicode=true&characterEncoding=utf8&serverTimezone=PRC&useSSL=false&rewriteBatchedStatements=TRUE&autoReconnect=true&allowMultiQueries=true"/> <!-- 從庫 --> <Resource name="jdbc/cluster" auth="Container" maxActive="100" maxIdle="30" maxWait="10000" factory="com.alibaba.druid.pool.DruidDataSourceFactory" filters="stat" useGlobalDataSourceStat="true" defaultTransactionIsolation="READ_COMMITTED" validationQuery="select 1 from DUAL" type="javax.sql.DataSource" username="test" password="test" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//127.0.0.1:1521/GHSTEST"/>
<servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> <init-param> <!-- 容許清空統計數據 --> <param-name>resetEnable</param-name> <param-value>true</param-value> </init-param> <init-param> <!-- 用戶名 --> <param-name>loginUsername</param-name> <param-value>admin</param-value> </init-param> <init-param> <!-- 密碼 --> <param-name>loginPassword</param-name> <param-value>admin</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DruidStatView</servlet-name> <url-pattern>/druid/*</url-pattern> </servlet-mapping>
db: datasource: jndiName: masterDB: java:comp/env/jdbc/master clusterDB: java:comp/env/jdbc/cluster
@Configuration @MapperScan(basePackages = "cn.com.test.dao.master", sqlSessionFactoryRef = "masterSqlSessionFactory") public class MasterBaseDataSourceConfig { @Value("${db.datasource.jndiName.masterDB}") private String jndiName; @Primary @Bean(name = "masterDataSource") public DataSource masterDataSource() { JndiDataSourceLookup lookup = new JndiDataSourceLookup(); lookup.setResourceRef(true); return lookup.getDataSource(jndiName); } @Primary @Bean(name = "masterTransactionManager") public DataSourceTransactionManager masterTransactionManager() { return new DataSourceTransactionManager(masterDataSource()); } @Primary @Bean(name = "masterSqlSessionFactory") public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(masterDataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources("classpath:mapper/master/*.xml")); return sessionFactory.getObject(); } }
@Configuration @MapperScan(basePackages = "cn.com.test.dao.cluster", sqlSessionFactoryRef = "clusterSqlSessionFactory") public class ClusterBaseDataSourceConfig { @Value("${db.datasource.jndiName.clusterDB}") private String jndiName; @Bean(name = "clusterDataSource") public DataSource clusterDataSource() { JndiDataSourceLookup lookup = new JndiDataSourceLookup(); lookup.setResourceRef(true); return lookup.getDataSource(jndiName); } @Bean(name = "clusterTransactionManager") public DataSourceTransactionManager clusterTransactionManager() { return new DataSourceTransactionManager(clusterDataSource()); } @Bean(name = "clusterSqlSessionFactory") public SqlSessionFactory clusterSqlSessionFactory(@Qualifier("clusterDataSource") DataSource clusterDataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(clusterDataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources("classpath:mapper/cluster/*.xml")); return sessionFactory.getObject(); } }
ojdbc6.jar
mysql-connector-java-6.0.6.jar
druid-1.1.10.jar
記得把mysql驅動,Oracle驅動,Druid jar拷貝到%TOMCAT_HOME%/lib下java