springboot配多个mysql schema
时间: 2024-11-13 16:39:38 浏览: 21
Spring Boot允许你在同一个应用程序中连接到多个MySQL数据库实例,即配置不同的数据源(Data Sources)。这通常是在需要管理多个独立数据库环境,如测试、开发和生产的情况下。以下是步骤:
1. **添加依赖**:首先,在`pom.xml`文件中添加Spring JDBC和Spring Data JPA的依赖,以及MySQL的驱动。
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
```
2. **创建数据源配置**:在`application.properties`或`application.yml`中,为每个数据库设置单独的数据源别名和连接信息。
例如:
```properties
spring.datasource.jdbc-url=jdbc:mysql://localhost/test?useSSL=false
spring.datasource.test-on-borrow=true
spring.datasource.schema=testDBSchema
spring.datasource2.jdbc-url=jdbc:mysql://localhost/anotherdb?useSSL=false
spring.datasource2.test-on-borrow=true
spring.datasource2.schema=anotherDBSchema
```
这里,“spring.datasource”和“spring.datasource2”是别名,可以根据实际需求调整。
3. **配置JPA和Repository**:在实体类上注解`@Entity`,并指定相应的`@Table`注解,注明对应的数据库名称。创建对应的Repository接口,`@Repository`注解可以包含`@DataSource`注解指明从哪个数据源读取数据。
4. **启用多数据源支持**:在`@Configuration`类上添加`@EnableJpaRepositories`并指定数据源别名。
```java
@Configuration
@EnableJpaRepositories(basePackages = "com.example.repositories", entityManagerFactoryRef = "entityManagerFactory2", transactionManagerRef = "transactionManager2")
public class DataSourceConfig {
@Bean(name = "dataSource")
public DataSource dataSource() {
// 数据源配置...
}
@Bean(name = "dataSource2")
public DataSource dataSource2() {
// 另一个数据源配置...
}
// 其他配置,如EntityManagerFactory和TransactionManager
}
```
5. **事务管理**:如果需要在多个数据源之间切换事务,你还需要配置事务管理器和事务策略。
现在你的Spring Boot应用就可以分别从不同的数据库schema中操作数据了。在代码中通过别名引用`DataSource`或`EntityManagerFactory`即可。
阅读全文