1.在application.properties添加DB连接地址
# Allow overwriting of existing beans
spring.main.allow-bean-definition-overriding=true
# Produce DB
spring.datasource.prd.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.prd.url=jdbc:oracle:thin:@(description=(address=(protocol=tcp)(port=1500)(host=Admin1))(connect_data=(SID=db1)))
spring.datasource.prd.username=root1
spring.datasource.prd.password=root1
# Dev DB
spring.datasource.dev.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.dev.jdbc-url=jdbc:oracle:thin:@(description=(address=(protocol=tcp)(port=1500)(host=Admin2))(connect_data=(service_name=db2)))
spring.datasource.dev.username=root2
spring.datasource.dev.password=root2
##### 2.在src目录创建(与启动类同级目录下)创建config文件,分别创建DataSourceConfig,PrdOrcaleFactoryConfig,DevOrcaleFactoryConfig
###### 2.1 DataSouceConfig(父级Config)
```java
import javax.sql.DataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DataSourceConfig
{
@Bean(name = "PrdDataSource")
@ConfigurationProperties(prefix = "spring.datasource.prd")
public DataSource PrdDataSource()
{
return DataSourceBuilder.create().build();
}
@Bean(name = "DevDataSource")
@ConfigurationProperties(prefix = "spring.datasource.dev")
public DataSource DevDataSource()
{
return DataSourceBuilder.create().build();
}
}
2.1 在scr目录下(与启动类同级目录下)添加Config文件,添加DataSourceConfig,PrdOrcaleFactoryConfig,DevOrcaleFactoryConfig类
2.1 父类DataSourceConfig
import javax. sql. DataSource;
import org. springframework. boot. context. properties. ConfigurationProperties;
import org. springframework. boot. jdbc. DataSourceBuilder;
import org. springframework. context. annotation. Bean;
import org. springframework. context. annotation. Configuration;
@Configuration
public class DataSourceConfig
{
@Bean ( name = "PrdDataSource" )
@ConfigurationProperties ( prefix = "spring.datasource.prd" )
public DataSource PrdDataSource ( )
{
return DataSourceBuilder. create ( ) . build ( ) ;
}
@Bean ( name = "DevMDataSource" )
@ConfigurationProperties ( prefix = "spring.datasource.dev" )
public DataSource DevDataSource ( )
{
return DataSourceBuilder. create ( ) . build ( ) ;
}
}
2.2 PrdOrcaleFactoryConfig(A数据源)
import javax. sql. DataSource;
import org. apache. ibatis. session. SqlSessionFactory;
import org. mybatis. spring. SqlSessionFactoryBean;
import org. mybatis. spring. SqlSessionTemplate;
import org. mybatis. spring. annotation. MapperScan;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. beans. factory. annotation. Qualifier;
import org. springframework. context. annotation. Bean;
import org. springframework. context. annotation. Configuration;
import org. springframework. core. io. support. PathMatchingResourcePatternResolver;
import org. springframework. core. io. support. ResourcePatternResolver;
import org. springframework. jdbc. datasource. DataSourceTransactionManager;
import org. springframework. transaction. annotation. EnableTransactionManagement;
@Configuration
@EnableTransactionManagement
@MapperScan ( basePackages = { "com.azure.mapper.prd" } , sqlSessionFactoryRef = "sqlSessionFactoryPrd" )
public class PrdOracleFactoryConfig
{
@Autowired
@Qualifier ( "PrdDataSource" )
private DataSource prdDataSource;
@Bean
public SqlSessionFactory sqlSessionFactoryPrd ( ) throws Exception
{
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean ( ) ;
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver ( ) ;
factoryBean. setMapperLocations ( resolver. getResources ( "classpath*:mybatis/mappings/other/*.xml" ) ) ;
factoryBean. setDataSource ( prdDataSource) ;
return factoryBean. getObject ( ) ;
}
@Bean
public SqlSessionTemplate sqlSessionTemplatePrd ( ) throws Exception
{
SqlSessionTemplate template = new SqlSessionTemplate ( sqlSessionFactoryPrd ( ) ) ;
return template;
}
@Bean
public DataSourceTransactionManager dataSourceTransactionManagerPrd ( )
{
return new DataSourceTransactionManager ( prdDataSource) ;
}
}
2.3 DevOrcaleFactoryConfig(B数据源)
import javax. sql. DataSource;
import org. apache. ibatis. session. SqlSessionFactory;
import org. mybatis. spring. SqlSessionFactoryBean;
import org. mybatis. spring. SqlSessionTemplate;
import org. mybatis. spring. annotation. MapperScan;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. beans. factory. annotation. Qualifier;
import org. springframework. context. annotation. Bean;
import org. springframework. context. annotation. Configuration;
import org. springframework. core. io. support. PathMatchingResourcePatternResolver;
import org. springframework. core. io. support. ResourcePatternResolver;
import org. springframework. jdbc. datasource. DataSourceTransactionManager;
import org. springframework. transaction. annotation. EnableTransactionManagement;
@Configuration
@EnableTransactionManagement
@MapperScan ( basePackages = { "com.azure.mapper.dev" } , sqlSessionFactoryRef = "sqlSessionFactoryDev" )
public class DevOracleFactoryConfig
{
@Autowired
@Qualifier ( "DevDataSource" )
private DataSource devDataSource;
@Bean
public SqlSessionFactory sqlSessionFactoryDev ( ) throws Exception
{
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean ( ) ;
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver ( ) ;
factoryBean. setMapperLocations ( resolver. getResources ( "classpath*:mybatis/**/*.xml" ) ) ;
factoryBean. setDataSource ( devDataSource) ;
return factoryBean. getObject ( ) ;
}
@Bean
public SqlSessionTemplate sqlSessionTemplateDev ( ) throws Exception
{
SqlSessionTemplate template = new SqlSessionTemplate ( sqlSessionFactoryDev ( ) ) ;
return template;
}
@Bean
public DataSourceTransactionManager dataSourceTransactionManagerDev ( )
{
return new DataSourceTransactionManager ( devDataSource) ;
}
}
3.再创建对应的mapper与mapping.xml文件即可
大功告成! 欢迎大家评论留言