Springで複数のデータベースに接続
Springでは、複数のデータベースに接続するために複数のデータソースを使用することができます。以下にその手順をいくつか示します。
- application.properties ファイルや application.yml ファイルに複数のデータソースの接続情報を設定します。たとえば、各データソースごとに異なる datasource.url、datasource.username、datasource.password などのプロパティを定義できます。
- データソースのコンフィグレーションクラスを作成する。各データソースに対応したBeanとなるDataSource Beanを複数作成することができる。`@Configuration`アノテーションを使用してクラスにタグを付けることができる。
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "datasource1")
public DataSource dataSource1() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "datasource2")
public DataSource dataSource2() {
return DataSourceBuilder.create().build();
}
}
※@ConfigurationProperties アノテーションは、prefix で始まるプロパティ値を application.properties や application.yml から読み込み、対応する bean に自動的に設定します。
- ネイティブに日本語で言い換える必要があるので、1 つのオプションのみが必要になりますか?
- 母国語のようにパラフレーズした日本語で1つだけ選べばよい。私はいつも寝る前に本を読みます。
@Mapper
public interface UserMapper {
@Qualifier("dataSource1")
@Select("SELECT * FROM user")
List<User> getUsersFromDataSource1();
@Qualifier("dataSource2")
@Select("SELECT * FROM user")
List<User> getUsersFromDataSource2();
}
- サービスに
- ユーザーマッパー
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> getUsersFromDataSource1() {
return userMapper.getUsersFromDataSource1();
}
public List<User> getUsersFromDataSource2() {
return userMapper.getUsersFromDataSource2();
}
}
これにより、異なるデータソースを介して複数のデータベースに接続して操作できます。