码上敲享录 > java面试题及答案大全 > Spring Boot如何访问不同的数据库

Spring Boot如何访问不同的数据库

上一章章节目录下一章 2023-07-11已有255人阅读 评论(0)

在Spring Boot中,可以通过配置多个数据源来访问不同的数据库。下面是一种简单的方式:


1. 在application.properties(或application.yml)文件中配置多个数据源的连接信息。例如,配置两个数据源分别访问MySQL和MongoDB数据库:


```properties

# MySQL 数据源配置

spring.datasource.url=jdbc:mysql://localhost:3306/db1

spring.datasource.username=your_username

spring.datasource.password=your_password

spring.datasource.driver-class-name=com.mysql.jdbc.Driver


# MongoDB 数据源配置

spring.data.mongodb.uri=mongodb://localhost:27017/db2

```


2. 创建两个数据源的配置类,分别对应MySQL和MongoDB。在这些配置类中,使用@Configuration注解进行标注,并分别使用@Primary和@Qualifier注解来定义主数据源和辅助数据源。


```java

@Configuration

public class MysqlDataSourceConfig {


   @Primary

   @Bean(name = "mysqlDataSource")

   @ConfigurationProperties(prefix = "spring.datasource")

   public DataSource mysqlDataSource() {

       return DataSourceBuilder.create().build();

   }

}


@Configuration

public class MongoDataSourceConfig {


   @Bean(name = "mongoDataSource")

   @ConfigurationProperties(prefix = "spring.data.mongodb")

   public MongoDbFactory mongoDataSource() {

       return new SimpleMongoClientDbFactory(new ConnectionString());

   }

}

```


3. 创建两个JdbcTemplate(或其他数据访问框架)的实例,并分别注入对应的数据源。


```java

@Autowired

@Qualifier("mysqlDataSource")

private DataSource mysqlDataSource;


@Autowired

@Qualifier("mongoDataSource")

private MongoDbFactory mongoDataSource;


@Bean(name = "mysqlJdbcTemplate")

public JdbcTemplate mysqlJdbcTemplate() {

   return new JdbcTemplate(mysqlDataSource);

}


@Bean(name = "mongoTemplate")

public MongoTemplate mongoTemplate() {

   return new MongoTemplate(mongoDataSource);

}

```


通过上述配置,你就可以在代码中使用不同的JdbcTemplate来访问不同的数据库,例如在某个服务类中:


```java

@Service

public class DataService {


   @Autowired

   @Qualifier("mysqlJdbcTemplate")

   private JdbcTemplate mysqlJdbcTemplate;


   @Autowired

   @Qualifier("mongoTemplate")

   private MongoTemplate mongoTemplate;


   // 使用 mysqlJdbcTemplate 访问 MySQL 数据库

   // 使用 mongoTemplate 访问 MongoDB 数据库

}

```


通过这种方式,你可以灵活地配置和使用多个数据源,以实现对不同数据库的访问。当然,你也可以使用其他的数据库访问框架,如MyBatis、Hibernate等,根据框架的要求进行配置和使用。


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交