springboot实现多数据源且自动切换
- 在项目中添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>版本</version>
</dependency>
可以去maven仓库选择适合自己的版本
2. 在配置文件中数据源的配置改成如下格式:配置就依此添加实际配置
spring:
datasource:
dynamic:
datasource:
数据源A:
url: jdbcUrl
driver-class-name: com.mysql.cj.jdbc.Driver
username: username
password: password
数据源B:
url: jdbcUrl
driver-class-name: com.mysql.cj.jdbc.Driver
username: username
password: password
primary: 数据源A
hikari:
connection-timeout: 30000
min-idle: 5
max-pool-size: 10
idle-timeout: 600000
max-lifetime: 1800000
connection-test-query: select 1
- 简单的jdbcTemplate操作
DynamicRoutingDataSource dynamicRoutingDataSource = applicationContext.getBean(DynamicRoutingDataSource.class);
DataSource source = dynamicRoutingDataSource.getDataSource("数据源A");
JdbcTemplate template = new JdbcTemplate(source);
- 结合mybatisPlus
- 添加相关依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.4.3</version>
</dependency>
- 编写Mapper接口
@DS("数据源A")
public interface AMapper extends BaseMapper<实体类> {
//这样在执行mapper的方法时就会自动切换注解中的数据源
}
@DS("数据源B")
public interface BMapper extends BaseMapper<实体类> {
//这样在执行mapper的方法时就会自动切换注解中的数据源
}
至此就可实现项目中的多数据源切换。最后说明一下,不知是否发现在上面配置中有一项是primary: 数据源A,作用是不指定数据源时默认的数据源。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律