在Spring Boot中連接多個數據源,可以使用Spring框架提供的多數據源支持。下面是一個示例:
# 數據源1
spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=root
spring.datasource.password=123456
# 數據源2
datasource2.url=jdbc:mysql://localhost:3306/db2
datasource2.username=root
datasource2.password=123456
@Configuration
public class DataSource1Config {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource1() {
return DataSourceBuilder.create().build();
}
}
@Configuration
public class DataSource2Config {
@Bean
@ConfigurationProperties(prefix = "datasource2")
public DataSource dataSource2() {
return DataSourceBuilder.create().build();
}
}
@RestController
public class UserController {
@Autowired
private DataSource dataSource1;
@Autowired
private DataSource dataSource2;
@Bean
public JdbcTemplate jdbcTemplate1() {
return new JdbcTemplate(dataSource1);
}
@Bean
public JdbcTemplate jdbcTemplate2() {
return new JdbcTemplate(dataSource2);
}
@GetMapping("/users")
public List<User> getUsers() {
// 使用jdbcTemplate1查詢數據源1的用戶數據
List<User> users1 = jdbcTemplate1().query("SELECT * FROM users", new BeanPropertyRowMapper<>(User.class));
// 使用jdbcTemplate2查詢數據源2的用戶數據
List<User> users2 = jdbcTemplate2().query("SELECT * FROM users", new BeanPropertyRowMapper<>(User.class));
// 合并兩個數據源的用戶數據
List<User> allUsers = new ArrayList<>();
allUsers.addAll(users1);
allUsers.addAll(users2);
return allUsers;
}
}
這樣,就可以使用多個數據源來連接不同的數據庫。在需要使用數據源的地方,可以根據具體的需求選擇對應的數據源進行操作。