可以通过在需要使用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对象来执行数据库操作了

使用mybatis+springboot在applicationyaml fastdep中配置了多个数据源如何在程序中引用某个SqlSessionFactory

原文地址: https://www.cveoy.top/t/topic/fory 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录