使用mybatis+springboot在applicationyaml fastdep中配置了多个数据源如何在程序中引用某个SqlSessionFactory
可以通过在需要使用SqlSessionFactory的地方注入SqlSessionFactory对象来获取。
以下示例代码展示了如何在Spring Boot中使用MyBatis多数据源配置,并在代码中获取某个数据源的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对象:
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/fory 著作权归作者所有。请勿转载和采集!