SpringBoot +druid+oracle+mybatis 双数据源项目介绍
1、项目整体目录
2、pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.yhc</groupId> <artifactId>demo-new</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo-new</name> <description>Demo project for Spring Boot</description> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mybatis对springBoot的支持--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!-- 使用oracle数据库驱动 --> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 数据库连接池 用的是阿里的德鲁伊 druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.9</version> </dependency> <!-- 应用apache Commons jar包--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
3、配置文件 application.properties
3、关于数据源的配置文件
(1)主数据源配置 @Configuration @MapperScan(basePackages = SelfDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "selfSqlSessionFactory") public class SelfDataSourceConfig { static final String PACKAGE = "com.xinbo.dao.selfMapper"; static final String MAPPER_LOCATION = "classpath:selfMapping/*.xml"; @Value("${spring.datasource.self.url}") private String url; @Value("${spring.datasource.self.username}") private String user; @Value("${spring.datasource.self.password}") private String password; @Value("${spring.datasource.self.driverClassName}") private String driverClass; @Bean(name = "selfDataSource") @Primary public DataSource selfDataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClass); dataSource.setUrl(url); dataSource.setUsername(user); dataSource.setPassword(password); return dataSource; } @Bean(name = "selfTransactionManager") @Primary public DataSourceTransactionManager selfTransactionManager() { return new DataSourceTransactionManager(selfDataSource()); } @Bean(name = "selfSqlSessionFactory") @Primary public SqlSessionFactory selfSqlSessionFactory(@Qualifier("selfDataSource") DataSource selfDataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(selfDataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources(SelfDataSourceConfig.MAPPER_LOCATION)); return sessionFactory.getObject(); }
(2)第二个数据源配置 @Configuration @MapperScan(basePackages = CdrDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "cdrSqlSessionFactory") public class CdrDataSourceConfig { static final String PACKAGE = "com.xinbo.dao.cdrMapper"; static final String MAPPER_LOCATION = "classpath:cdrMapping/*.xml"; @Value("${spring.datasource.cdr.url}") private String url; @Value("${spring.datasource.cdr.username}") private String user; @Value("${spring.datasource.cdr.password}") private String password; @Value("${spring.datasource.cdr.driverClassName}") private String driverClass; @Bean(name = "cdrDataSource") public DataSource cdrDataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClass); dataSource.setUrl(url); dataSource.setUsername(user); dataSource.setPassword(password); return dataSource; } @Bean(name = "cdrTransactionManager") public DataSourceTransactionManager cdrTransactionManager() { return new DataSourceTransactionManager(cdrDataSource()); } @Bean(name = "cdrSqlSessionFactory") public SqlSessionFactory cdrSqlSessionFactory(@Qualifier("cdrDataSource") DataSource cdrDataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(cdrDataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources(CdrDataSourceConfig.MAPPER_LOCATION)); return sessionFactory.getObject(); } }
到这里数据源配置就结束了 其他的写法和SpringBoot创建web 的写法