在Spring Boot项目中使用MyBatis Plus连接多数据源(dynamic-datasource),并且这些数据源包括PostgreSQL数据库,你可以通过以下步骤实现:
- 在
pom.xml
中添加相关依赖:
<!-- MyBatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>你的版本号</version>
</dependency>
<!-- dynamic-datasource -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>你的版本号</version>
</dependency>
<!-- PostgreSQL -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
<version>你的版本号</version>
</dependency>
- 在
application.yml
或application.properties
中配置多数据源:
spring:
datasource:
dynamic:
primary: 'datasource1' # 设置主数据源
datasource:
datasource1:
url: jdbc:postgresql://localhost:5432/db1
username: user1
password: pass1
driver-class-name: org.postgresql.Driver
datasource2:
url: jdbc:postgresql://localhost:5432/db2
username: user2
password: pass2
driver-class-name: org.postgresql.Driver
- 配置MyBatis Plus:
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
DynamicDataSourceInterceptor dynamicDataSourceInterceptor = new DynamicDataSourceInterceptor();
interceptor.addInnerInterceptor(dynamicDataSourceInterceptor);
return interceptor;
}
}
- 使用
@DS
注解在Mapper接口或Service方法上指定数据源:
@Service
public class YourService {
@Autowired
private YourMapper1 yourMapper1;
@Autowired
private YourMapper2 yourMapper2;
@Transactional
public void yourMethod() {
// 使用datasource1
yourMapper1.someMethod();
// 使用datasource2
yourMapper2.someMethod();
}
}
@Mapper
@DS("datasource1")
public interface YourMapper1 {
void someMethod();
}
@Mapper
@DS("datasource2")
public interface YourMapper2 {
void someMethod();
}
确保你已经创建了相应的Mapper接口和实体类,并且在application.yml
中配置了正确的数据库连接信息。
以上代码提供了一个基本的框架,你可以根据自己的需求进行相应的调整和扩展。