赞
踩
多数据源配置,如果使用的是mybatis-plus,可以整合同样是mybatis-plus开发的jar包dynamic-datasource,可以很简单的通过注解做数据库切换。
官方地址:
https://baomidou.com/pages/a61e1b/#dynamic-datasource
简介:
引入pom:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
如果需要连不同的数据库,需要引入各个数据库的连接依赖包
<!-- mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<!-- sqlserver-->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>8.4.1.jre8</version>
</dependency>
yml配置:
spring: datasource: dynamic: primary: db1 #设置默认的数据源或者数据源组,默认值即为master strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源 datasource: db1: url: jdbc:sqlserver://localhost:1433;DatabaseName=inventory_engine username: root password: xxx driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver # 3.2.0开始支持SPI可省略此配置 db2: url: jdbc:mysql://localhost:3306/inventory_engine?characterEncoding=utf-8&serverTimezone=UTC username: root password: xxx driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
新建DB1Service类,用于验证是否可以切换不同的数据源对数据库进行操作,在db1中建了表test1,包含字段user_name,sex,在db2中建了表test2,字段name,sex
在方法上使用@DS注解,即可实现数据源的切换,此注解可以用在类上或者方法上,方法上的注解优先于类上注解
@Service public class DB1Service { @Autowired private JdbcTemplate jdbcTemplate; public void insertTest1(){ jdbcTemplate.execute("insert into test1(user_name,sex) values ('zhangsan',1)"); } @DS("db2") public void insertTest2(){ jdbcTemplate.execute("insert into test2(name,sex) values ('lisi',1)"); } }
注解 | 结果 |
---|---|
没有@DS | 默认数据源 |
@DS(“dsName”) | dsName可以为组名也可以为具体某个库的名称 |
新建测试Controller,模拟接口调用
@RestController
public class MyController {
@Autowired
private DB1Service db1Service;
@RequestMapping("/test")
public String test(){
db1Service.insertTest1();
db1Service.insertTest2();
return "hello,world";
}
}
结果:
test1表:
test2表:
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。