SpringBoot 多数据源配置:使用 MyBatis 获取指定 SqlSessionFactory
SpringBoot 多数据源配置:使用 MyBatis 获取指定 SqlSessionFactory
本文将介绍如何在 Spring Boot 中使用 MyBatis 多数据源配置,并通过注入 SqlSessionFactory 对象,在程序中获取特定数据源的 SqlSessionFactory 对象,从而实现对不同数据库的操作。
配置多个数据源
首先,需要在 application.yaml 文件中配置多个数据源:
spring:
datasource:
primary:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db1
username: root
password: root
secondary:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db2
username: root
password: root
注入 SqlSessionFactory 对象
在需要使用 SqlSessionFactory 的地方,可以通过注入 SqlSessionFactory 对象来获取。
以下示例代码展示了如何在 Spring Boot 中使用 MyBatis 多数据源配置,并在代码中获取某个数据源的 SqlSessionFactory 对象:
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@Service
public class MyService {
private final SqlSessionFactory primarySqlSessionFactory;
private final SqlSessionFactory secondarySqlSessionFactory;
public MyService(@Qualifier('primarySqlSessionFactory') SqlSessionFactory primarySqlSessionFactory,
@Qualifier('secondarySqlSessionFactory') SqlSessionFactory secondarySqlSessionFactory) {
this.primarySqlSessionFactory = primarySqlSessionFactory;
this.secondarySqlSessionFactory = secondarySqlSessionFactory;
}
public void doSomethingWithPrimaryDataSource() {
// 使用primary数据源的SqlSessionFactory对象
}
public void doSomethingWithSecondaryDataSource() {
// 使用secondary数据源的SqlSessionFactory对象
}
}
在上面的代码中,我们通过在构造函数中注入 primarySqlSessionFactory 和 secondarySqlSessionFactory 来获取对应数据源的 SqlSessionFactory 对象。然后我们就可以在代码中使用这些 SqlSessionFactory 对象来执行数据库操作了。
原文地址: https://www.cveoy.top/t/topic/od5L 著作权归作者所有。请勿转载和采集!