简述
Java单体项目里,我们一般是只需配置一个数据库,这时代码里的dao层都是只对一个数据库操作;但有时候我们的数据可能在2个或者3个数据库,这时就需要配置更多数据源,进行数据库直连操作,下面以MySQL的两个库为例(Oracle也就换个驱动类与连接串)。
(本文阅读大概花费两分钟)
准备工作
技术条件:
springboot 2.5.3 (即springframework 5.3.9)
MySQL 5.7
mybatis-plus 3.5.0
dynamic-datasource 3.5.0
druid 1.2.9
idea开发工具、maven 3.3.9
干货步骤
1、导入相关依赖
org.springframework.boot spring-boot-starter-web mysql mysql-connector-java runtime com.baomidou mybatis-plus-boot-starter 3.5.0 com.baomidou dynamic-datasource-spring-boot-starter 3.5.0 com.alibaba druid-spring-boot-starter 1.2.9
2、建立两个数据库mydb(表 user)、db2(表t_class),并分别建一张表
3、编写application.yaml配置文件
spring: datasource: dynamic: #设置主数据源 primary: master datasource: master: #每个数据源的唯一标识符 #连接池类型,如果不设置自动查找 Druid > HikariCp type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/mydb username: root password: 你的秘密 driver-class-name: com.mysql.jdbc.Driver second: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/db2 username: root password: 你的密码 driver-class-name: com.mysql.jdbc.Driver
4、编写po类、dao层、一个接口测试类
其中,在dao的类加上对应的数据源标识符,使用此注解com.baomidou.dynamic.datasource.annotation.DS
5、启动项目,查看结果
至此,多数据源环境集成成功;当然这里只使用了查询功能,对应事务相关的下一回合文章再做讨论啥。