1. 动态数据源使用背景
在很多应用场景的时候,我们需要用到动态数据源,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库。又比如业务A要访问A数据库,业务B要访问B数据库,业务C要访问C数据库等,都可以使用动态数据源方案进行解决 数据访问问题。
2. 基于Springboot + mybatis+mysql+oracle
create table SYS_USER
(
id NUMBER,
name VARCHAR2(50),
password VARCHAR2(100),
salt VARCHAR2(40),
email VARCHAR2(100),
mobile VARCHAR2(100),
status NUMBER,
dept_id NUMBER,
create_by VARCHAR2(50),
create_time DATE,
last_update_by VARCHAR2(50),
last_update_time DATE,
del_flag NUMBER
)
3. 加载相关jar 包依赖
<!-- spring boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- spring aop -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${
mybatis.spring.version}</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--oracle驱动 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${
swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${
swagger.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.19</version>
<scope>compile</scope>
</dependency>
4. 配置数据库属性,yml 文件
spring:
datasource:
master:
#driver-class-name: com.mysql.jdbc.Driver
driverClassName: com.mysql.jdbc.Driver
#jdbcUrl: jdbc:mysql://localhost:3306/mysqltest?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
url: jdbc:mysql://localhost:3306