springboot 配置多个mysql数据库
时间: 2023-10-05 12:11:46 浏览: 80
springBoot配置多数据库
1. 添加多个数据源配置
在application.properties文件中添加多个数据源的配置,例如:
```
# 数据源1配置
spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=user1
spring.datasource.password=pass1
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 数据源2配置
spring.datasource.second.url=jdbc:mysql://localhost:3306/db2
spring.datasource.second.username=user2
spring.datasource.second.password=pass2
spring.datasource.second.driver-class-name=com.mysql.jdbc.Driver
```
2. 配置数据源Bean
在Spring Boot的配置类中,使用@Bean注解创建多个数据源的Bean,例如:
```
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "dataSource1")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource1() {
return DataSourceBuilder.create().build();
}
@Bean(name = "dataSource2")
@ConfigurationProperties(prefix = "spring.datasource.second")
public DataSource dataSource2() {
return DataSourceBuilder.create().build();
}
}
```
在上面的代码中,@Primary注解表示默认使用dataSource1数据源,如果要使用dataSource2,需要在使用时指定Bean名称。
3. 使用多个数据源
使用多个数据源时,可以通过@Qualifier注解指定使用哪个数据源,例如:
```
@Service
public class UserService {
@Autowired
@Qualifier("dataSource1")
private DataSource dataSource1;
@Autowired
@Qualifier("dataSource2")
private DataSource dataSource2;
public void addUser(User user) {
// 使用dataSource1
JdbcTemplate jdbcTemplate1 = new JdbcTemplate(dataSource1);
// 插入用户数据
jdbcTemplate1.update("insert into user(name, age) values(?, ?)", user.getName(), user.getAge());
// 使用dataSource2
JdbcTemplate jdbcTemplate2 = new JdbcTemplate(dataSource2);
// 插入用户数据
jdbcTemplate2.update("insert into user(name, age) values(?, ?)", user.getName(), user.getAge());
}
}
```
在上面的代码中,通过@Qualifier注解指定使用哪个数据源,并使用JdbcTemplate执行SQL语句。
阅读全文