複数のデータソースの一般的な使用シナリオ
- 複雑なビジネス (大量のデータ): ビジネスが複雑な場合は分割する必要があり、付随するデータベースも分割されるため、複数のデータベースが関係します。
- 読み取りと書き込みの分離: 静かなデータベース読み取りパフォーマンスの問題を解決するために (どちらも書き込みパフォーマンスよりも高いため、書き込みロックは読み取りブロックに影響し、読み取りパフォーマンスに影響します)
使用法
- 依存関係をインポートする
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<!--我用的version是3.4.0,请根据自己项目的其他依赖版本选出合适的version-->
<version>${dynamic-datasource-spring-boot-starter-version}</version>
</dependency>
- 構成ファイルに複数のデータベースをインポートする
spring:
datasource:
dynamic:
# 默认数据源
primary: datasource1
datasource:
datasource1:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/datasource1?serverTimezone=Asia/Shanghai
username: root
password: xxx
druid-type: com.alibaba.druid.pool.DruidDataSource
datasource2:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/datasoutce2?serverTimezone=Asia/Shanghai
username: root
password: xxx
dynamic-type: com.baomidou.dynamic.datasource.spring.boot.autoconfigure.druid.DruidDataSource
2 つのデータベースの型の内容を同じにすることはできません。同じにしないと、エラーが報告されます
。 3. マッパー ファイルに注釈を追加します。
@DS("datasource2")
@Mapper
public interface XxxMapper{
}
ここでのDSアノテーションの値は操作対象のデータベースです。例えば、datasource2にXxxMapperがある場合はdatasource2と記入します。
上記の設定ファイルにはデフォルトのデータベースを追加しています。つまり、現在のMapperがデフォルトのデータベースなので追加する必要はありません。これには注釈が付けられています
これにより、複数のデータ ソースを簡単に構成できます。