springboot怎么连接多个数据源

   2025-02-13 6260
核心提示:在Spring Boot中连接多个数据源,可以使用Spring框架提供的多数据源支持。下面是一个示例:配置多个数据源的连接信息。在applica

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

配置多个数据源的连接信息。在application.properties(或application.yml)中配置多个数据源的连接信息,例如:
# 数据源1spring.datasource.url=jdbc:mysql://localhost:3306/db1spring.datasource.username=rootspring.datasource.password=123456# 数据源2datasource2.url=jdbc:mysql://localhost:3306/db2datasource2.username=rootdatasource2.password=123456
创建多个数据源的配置类。分别创建多个配置类用于配置不同的数据源,例如:
@Configurationpublic class DataSource1Config {        @Bean    @ConfigurationProperties(prefix = "spring.datasource")    public DataSource dataSource1() {        return DataSourceBuilder.create().build();    }}@Configurationpublic class DataSource2Config {        @Bean    @ConfigurationProperties(prefix = "datasource2")    public DataSource dataSource2() {        return DataSourceBuilder.create().build();    }}
创建多个数据源的JdbcTemplate实例。在需要使用数据源的地方,使用@Autowired注解注入对应的数据源,并创建JdbcTemplate实例,例如:
@RestControllerpublic 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;    }}

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

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言