91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot 中怎么利用mybatis實現多數據源

發布時間:2021-07-08 16:36:41 來源:億速云 閱讀:184 作者:Leah 欄目:大數據

本篇文章給大家分享的是有關springboot 中怎么利用mybatis實現多數據源,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

需求

項目有一個需求,需要從多數據源讀取數據。因此使用springboot+mybatis進行多數據源配置和操作。

依賴引入

        <!-- mybatis db -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
        </dependency>

配置文件

# ds1數據源配置
spring.datasource.ds1.url=jdbc:mysql://ip1:port/database?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.ds1.username=xxxxxx
spring.datasource.ds1.password=xxxxxx
spring.datasource.ds1.driver-class-name=com.mysql.cj.jdbc.Driver

# ds2數據源配置
spring.datasource.ds2.url=jdbc:mysql://ip2:port/database?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.ds2.username=xxxxxx
spring.datasource.ds2.password=xxxxxx
spring.datasource.ds2.driver-class-name=com.mysql.cj.jdbc.Driver

# ds3數據源配置
spring.datasource.ds3.url=jdbc:mysql://ip3:port/database?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.ds3.username=xxxxxx
spring.datasource.ds3.password=xxxxxx
spring.datasource.ds3.driver-class-name=com.mysql.cj.jdbc.Driver

Java配置

package com.qishu.demo.config;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
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 org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

@Configuration
@MapperScan(basePackages = "com.qishu.demo.ds1.dao", sqlSessionFactoryRef = "ds1SqlSessionFactory")
public class Ds1DatasourceConfig {

    @Primary
    @Bean(name = "ds1DataSource")
    @ConfigurationProperties("spring.datasource.ds1")
    public DataSource masterDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Primary
    @Bean(name = "ds1SqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("ds1DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:ds1-mapper/*.xml"));
        return sessionFactoryBean.getObject();
    }
}
package com.qishu.demo.config;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
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 org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

@Configuration
// 掃描的包路徑
@MapperScan(basePackages = "com.qishu.demo.ds2.dao", sqlSessionFactoryRef = "ds2SqlSessionFactory")
public class Ds2DatasourceConfig {

    @Bean(name = "ds2DataSource")
    // 配置前綴
    @ConfigurationProperties("spring.datasource.ds2")
    public DataSource masterDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "ds2SqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("ds2DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        // mapper文件目錄
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:ds2-mapper/*.xml"));
        return sessionFactoryBean.getObject();
    }
}

ds3就不寫了

使用方式

    @Autowired
    private AppDAO appDAO;

修改啟動類

// 排除自動注冊配置
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, MybatisAutoConfiguration.class})

單元測試

// EnableAutoConfiguration注解,關閉springBoot關于mybatis的一些自動注入。
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, MybatisAutoConfiguration.class})
public class AppDAOTest {

    @Autowired
    private AppDAO appDAO;


    @Test
    public void selectTest() {
        AppDO appDO = appDAO.selectByPrimaryKey(70);
        System.out.println(JSON.toJSONString(appDO));
    }
}

目錄結構

springboot 中怎么利用mybatis實現多數據源

以上就是springboot 中怎么利用mybatis實現多數據源,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平阴县| 甘南县| 吉首市| 庐江县| 西乌珠穆沁旗| 图木舒克市| 华池县| 荣成市| 芮城县| 商丘市| 富民县| 驻马店市| 舟曲县| 子长县| 白河县| 昭平县| 商都县| 青海省| 永定县| 静海县| 郑州市| 陆良县| 滁州市| 达日县| 长兴县| 墨竹工卡县| 扬州市| 刚察县| 浮山县| 双鸭山市| 临湘市| 巴青县| 手游| 龙岩市| 神农架林区| 双柏县| 蒲城县| 楚雄市| 噶尔县| 江永县| 监利县|