springboot怎么连接多个数据源

avatar
作者
猴君
阅读量:0

在Spring Boot中连接多个数据源,可以使用Spring框架提供的多数据源支持。下面是一个示例:

  1. 配置多个数据源的连接信息。在application.properties(或application.yml)中配置多个数据源的连接信息,例如:
# 数据源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 
  1. 创建多个数据源的配置类。分别创建多个配置类用于配置不同的数据源,例如:
@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();     } } 
  1. 创建多个数据源的JdbcTemplate实例。在需要使用数据源的地方,使用@Autowired注解注入对应的数据源,并创建JdbcTemplate实例,例如:
@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;     } } 

这样,就可以使用多个数据源来连接不同的数据库。在需要使用数据源的地方,可以根据具体的需求选择对应的数据源进行操作。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!