第一步:需要引入第三方依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.5</version>
</dependency>
第二步:修改数据库配置
这是修改前的
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
这是修改后的,注意看区别,datasource后跟dynamic.datasource.自定义数据源名
#设置默认数据源
spring.datasource.dynamic.primary=master
spring.datasource.dynamic.datasource.master.url=
spring.datasource.dynamic.datasource.master.username=
spring.datasource.dynamic.datasource.master.password=
spring.datasource.dynamic.datasource.master.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.slave.url=
spring.datasource.dynamic.datasource.slave.username=
spring.datasource.dynamic.datasource.slave.password=
spring.datasource.dynamic.datasource.slave.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.slave2.url=
spring.datasource.dynamic.datasource.slave2.username=
spring.datasource.dynamic.datasource.slave2.password=
spring.datasource.dynamic.datasource.slave2.driver-class-name=com.mysql.cj.jdbc.Driver
第三步:具体应用
@DS(value = “master”) 这个注解中的value值与配置文件中的数据源名称对应,可以用在类上,也可以在方法上;可以在dao层,也可以在service层;视实际情况而定。
另外需要注意的是,在我们没有指定数据源的时候,它是会自动去匹配默认的数据源来查询!
@Mapper
@DS(value = "master")
public interface SecondVisitDao {
List<Map<String, Object>> loadFromResult(@Param("offset") int offset,@Param("pageSize") int pageSize);
}