溫馨提示×

spring怎么連接多個數(shù)據(jù)庫

小億
169
2023-10-19 21:32:00

在Spring中,可以使用多個數(shù)據(jù)源來連接多個數(shù)據(jù)庫。下面是一些步驟:

  1. application.propertiesapplication.yml文件中配置多個數(shù)據(jù)源的連接信息。例如,可以為每個數(shù)據(jù)源定義不同的datasource.urldatasource.usernamedatasource.password等屬性。

  2. 創(chuàng)建多個數(shù)據(jù)源的配置類??梢詣?chuàng)建多個DataSource的bean,每個bean對應(yīng)一個數(shù)據(jù)源??梢允褂?code>@Configuration注解來標(biāo)記該類。

@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注解可以從application.propertiesapplication.yml文件中讀取以prefix開頭的屬性值,并自動裝配到對應(yīng)的bean中。

  1. @Mapper注解的接口中使用@Qualifier注解指定使用哪個數(shù)據(jù)源。例如:
@Mapper
public interface UserMapper {
@Qualifier("dataSource1")
@Select("SELECT * FROM user")
List<User> getUsersFromDataSource1();
@Qualifier("dataSource2")
@Select("SELECT * FROM user")
List<User> getUsersFromDataSource2();
}
  1. @Service注解的服務(wù)類中注入UserMapper接口,并調(diào)用相應(yīng)的方法即可。
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> getUsersFromDataSource1() {
return userMapper.getUsersFromDataSource1();
}
public List<User> getUsersFromDataSource2() {
return userMapper.getUsersFromDataSource2();
}
}

這樣,就可以通過不同的數(shù)據(jù)源連接和操作多個數(shù)據(jù)庫了。

0