H2 DB是一个内存数据库,可以嵌入在应用程序中使用,非常适合开发和测试环境。Spring Boot是一个用于快速构建基于Spring框架的Java应用程序的工具。
在Spring Boot中配置H2 DB的两个数据源可以按照以下步骤进行:
pom.xml
文件中添加H2 DB的依赖:<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
application.properties
或application.yml
文件中配置两个数据源的相关信息:# 第一个数据源
spring.datasource.url=jdbc:h2:mem:db1
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
# 第二个数据源
spring.datasource.second.url=jdbc:h2:mem:db2
spring.datasource.second.username=sa
spring.datasource.second.password=
spring.datasource.second.driver-class-name=org.h2.Driver
或者
spring:
datasource:
url: jdbc:h2:mem:db1
username: sa
password:
driver-class-name: org.h2.Driver
second:
datasource:
url: jdbc:h2:mem:db2
username: sa
password:
driver-class-name: org.h2.Driver
@Configuration
public class DataSourceConfig {
@Bean
@Primary
@ConfigurationProperties("spring.datasource")
public DataSourceProperties dataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
@ConfigurationProperties("spring.datasource")
public DataSource dataSource() {
return dataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
@ConfigurationProperties("spring.datasource.second")
public DataSourceProperties secondDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@ConfigurationProperties("spring.datasource.second")
public DataSource secondDataSource() {
return secondDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean
@Qualifier("secondJdbcTemplate")
public JdbcTemplate secondJdbcTemplate(@Qualifier("secondDataSource") DataSource secondDataSource) {
return new JdbcTemplate(secondDataSource);
}
}
以上配置完成后,您可以使用JdbcTemplate
来执行SQL语句,并操作两个数据源中的表。
至于您提到的问题,H2 DB的Spring Boot Two数据源配置无法创建表和插入数据的情况,可能有以下几个原因:
application.properties
或application.yml
中数据源的配置是否正确,包括URL、用户名和密码等。pom.xml
文件中已添加了H2 DB的依赖。希望以上内容对您有帮助!如果需要更详细的信息,可以参考腾讯云的相关产品文档:腾讯云数据库。
领取专属 10元无门槛券
手把手带您无忧上云