Springboot如何连接两个数据库,使用jdbcTemplate方式
时间: 2024-01-24 07:02:28 浏览: 202
Spring Boot可以使用多数据源来连接多个数据库,同时可以使用JdbcTemplate来进行数据访问。
首先,在application.properties文件中配置两个数据源的连接信息:
```
# 数据库1
spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=user1
spring.datasource.password=password1
# 数据库2
spring.datasource.db2.url=jdbc:mysql://localhost:3306/db2
spring.datasource.db2.username=user2
spring.datasource.db2.password=password2
```
然后,在代码中定义两个数据源的JdbcTemplate:
```
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "db1JdbcTemplate")
public JdbcTemplate db1JdbcTemplate(@Qualifier("db1DataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "db2JdbcTemplate")
public JdbcTemplate db2JdbcTemplate(@Qualifier("db2DataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Primary
@Bean(name = "db1DataSource")
@ConfigurationProperties(prefix="spring.datasource")
public DataSource db1DataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "db2DataSource")
@ConfigurationProperties(prefix="spring.datasource.db2")
public DataSource db2DataSource() {
return DataSourceBuilder.create().build();
}
}
```
最后,在代码中使用JdbcTemplate进行数据访问:
```
@Autowired
@Qualifier("db1JdbcTemplate")
private JdbcTemplate db1JdbcTemplate;
@Autowired
@Qualifier("db2JdbcTemplate")
private JdbcTemplate db2JdbcTemplate;
// 使用db1JdbcTemplate访问数据库1
List<Map<String, Object>> result = db1JdbcTemplate.queryForList("SELECT * FROM table1");
// 使用db2JdbcTemplate访问数据库2
List<Map<String, Object>> result2 = db2JdbcTemplate.queryForList("SELECT * FROM table2");
```
阅读全文