Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
在Spring Boot中配置双数据源可以使用多个方法,下面介绍其中的一种方法。
首先在pom.xml
文件中引入Spring Boot和数据库连接池的依赖。例如,使用MySQL和H2数据库,可以添加以下依赖:
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- H2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
在application.properties
文件中配置两个数据源的属性,例如:
# MySQL 数据源配置
spring.datasource.mysql.url=jdbc:mysql://localhost:3306/db1
spring.datasource.mysql.username=root
spring.datasource.mysql.password=123456
spring.datasource.mysql.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.mysql.tomcat.max-wait=10000
# H2 数据源配置
spring.datasource.h2.url=jdbc:h2:mem:db2
spring.datasource.h2.username=sa
spring.datasource.h2.password=
spring.datasource.h2.driver-class-name=org.h2.Driver
spring.datasource.h2.tomcat.max-wait=10000
创建两个数据源对象,用于连接数据库。可以使用@Configuration
注解和@Bean
注解来实现。例如:
@Configuration
public class DataSourceConfig {
@Bean(name = "mysqlDataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql")
public DataSource mysqlDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "h2DataSource")
@ConfigurationProperties(prefix = "spring.datasource.h2")
public DataSource h2DataSource() {
return DataSourceBuilder.create().build();
}
}
创建两个JdbcTemplate对象,用于执行SQL语句。可以使用@Autowired
注解来实现。例如:
@Configuration
public class JdbcTemplateConfig {
@Autowired
@Qualifier("mysqlDataSource")
private DataSource mysqlDataSource;
@Autowired
@Qualifier("h2DataSource")
private DataSource h2DataSource;
@Bean(name = "mysqlJdbcTemplate")
public JdbcTemplate mysqlJdbcTemplate() {
return new JdbcTemplate(mysqlDataSource);
}
@Bean(name = "h2JdbcTemplate")
public JdbcTemplate h2JdbcTemplate() {
return new JdbcTemplate(h2DataSource);
}
}
在代码中使用JdbcTemplate对象来执行SQL语句。可以使用@Autowired
注解来实现。例如:
@RestController
public class UserController {
@Autowired
@Qualifier("mysqlJdbcTemplate")
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
@Qualifier("h2JdbcTemplate")
private JdbcTemplate h2JdbcTemplate;
@GetMapping("/users")
public List<User> getUsers() {
List<User> users = new ArrayList<>();
// 使用mysqlJdbcTemplate执行SQL语句
mysqlJdbcTemplate.query("SELECT * FROM users", (rs, rowNum) -> {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
users.add(user);
return null;
});
// 使用h2JdbcTemplate执行SQL语句
h2JdbcTemplate.query("SELECT * FROM users", (rs, rowNum) -> {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
users.add(user);
return null;
});
return users;
}
}
以上就是在Spring Boot中配置双数据源的基本步骤。配置完成后,就可以使用两个数据源执行不同的SQL语句了。
参考资料
官方文档
开源社区
博客文章
书籍推荐
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~,如果有兴趣,可以加文末的交流群,大家一起进步哈