springboot项目连接多种数据库如何操作?
在Spring Boot项目中连接多个数据库,可以通过配置多个数据源来实现。以下是一个简单的示例:
- 在
application.properties
或application.yml
中配置多个数据源。
# application.yml配置多数据源
spring:
datasource:
db1:
url: jdbc:mysql://localhost:3306/db1
username: user1
password: pass1
driver-class-name: com.mysql.cj.jdbc.Driver
db2:
url: jdbc:mysql://localhost:3306/db2
username: user2
password: pass2
driver-class-name: com.mysql.cj.jdbc.Driver
- 创建配置类,配置两个
DataSource
实例。
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "db1DataSource")
@ConfigurationProperties(prefix = "spring.datasource.db1")
public DataSource db1DataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "db2DataSource")
@ConfigurationProperties(prefix = "spring.datasource.db2")
public DataSource db2DataSource() {
return DataSourceBuilder.create().build();
}
}
- 为每个数据源创建
JpaRepository
接口,并指定对应的数据源。
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface Db1Repository extends JpaRepository<YourEntity, YourIdType> {
// 自定义查询方法
}
@Repository
public interface Db2Repository extends JpaRepository<YourEntity, YourIdType> {
// 自定义查询方法
}
- 在实际的服务类中,注入对应的
Repository
。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class YourService {
@Autowired
private Db1Repository db1Repository;
@Autowired
private Db2Repository db2Repository;
// 使用db1Repository和db2Repository执行数据库操作
}
确保每个数据
评论已关闭