国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Spring Boot 3】【數(shù)據(jù)源】自定義多數(shù)據(jù)源

這篇具有很好參考價值的文章主要介紹了【Spring Boot 3】【數(shù)據(jù)源】自定義多數(shù)據(jù)源。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

背景

軟件開發(fā)是一門實踐性科學(xué),對大多數(shù)人來說,學(xué)習(xí)一種新技術(shù)不是一開始就去深究其原理,而是先從做出一個可工作的DEMO入手。但在我個人學(xué)習(xí)和工作經(jīng)歷中,每次學(xué)習(xí)新技術(shù)總是要花費(fèi)或多或少的時間、檢索不止一篇資料才能得出一個可工作的DEMO,這占用了我大量的時間精力。因此本文旨在通過一篇文章即能還原出可工作的、甚至可用于生產(chǎn)的DEMO,期望初學(xué)者能盡快地邁過0到1的這一步驟,并在此基礎(chǔ)上不斷深化對相關(guān)知識的理解。
為達(dá)以上目的,本文會將開發(fā)環(huán)境、工程目錄結(jié)構(gòu)、開發(fā)步驟及源碼盡量全面地展現(xiàn)出來,文字描述能簡則簡,能用代碼注釋的絕不在正文中再啰嗦一遍,正文僅對必要且關(guān)鍵的信息做重點(diǎn)描述。

介紹

在 《【Spring Boot 3】【數(shù)據(jù)源】自定義JDBC多數(shù)據(jù)源》 、《【Spring Boot 3】【數(shù)據(jù)源】自定義JPA多數(shù)據(jù)源》 和 《【Spring Boot 3】【數(shù)據(jù)源】自定義MyBatis多數(shù)據(jù)源》 中分別說明了開發(fā)Spring Boot應(yīng)用集成JDBC、JPA、MyBatis實現(xiàn)數(shù)據(jù)庫操作時如何自定義多數(shù)據(jù)源,有時開發(fā)可能需要使用多種數(shù)據(jù)庫訪問技術(shù)和ORM框架,本文介紹在同時啟用JDBC、JPA、MyBatis時如何自定義多數(shù)據(jù)庫。

開發(fā)環(huán)境

分類 名稱 版本
操作系統(tǒng) Windows Windows 11
JDK Oracle JDK 21.0.1
IDE IntelliJ IDEA 2023.2.4
構(gòu)建工具 Apache Maven 3.9.3
數(shù)據(jù)庫 MySQL 8.0.33

開發(fā)步驟及源碼

1> 準(zhǔn)備3個數(shù)據(jù)源(創(chuàng)建3個數(shù)據(jù)庫)。

  • 數(shù)據(jù)源一
-- 創(chuàng)建第一個數(shù)據(jù)源
CREATE SCHEMA IF NOT EXISTS `db1` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

-- 創(chuàng)建第一個數(shù)據(jù)源中的數(shù)據(jù)表
CREATE TABLE IF NOT EXISTS `db1`.`product`
(
    `id`    BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',
    `name`  VARCHAR(100)    NOT NULL COMMENT '產(chǎn)品名稱',
    `price` DECIMAL         NOT NULL COMMENT '產(chǎn)品價格',
    PRIMARY KEY (`id`),
    UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE
)
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = utf8mb4
    COLLATE = utf8mb4_bin;

-- 創(chuàng)建用戶
DROP USER IF EXISTS 'userA'@'%';
CREATE USER 'userA'@'%' IDENTIFIED BY '123123';

-- 給用戶賦予訪問第一個數(shù)據(jù)源的權(quán)限
GRANT ALL PRIVILEGES ON db1.* TO 'userA'@'%';
  • 數(shù)據(jù)源二
-- 創(chuàng)建第二個數(shù)據(jù)源
CREATE SCHEMA IF NOT EXISTS `db2` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

-- 創(chuàng)建第二個數(shù)據(jù)源中的數(shù)據(jù)表
CREATE TABLE IF NOT EXISTS `db2`.`customer`
(
    `id`   BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',
    `name` VARCHAR(100)    NOT NULL COMMENT '顧客名稱',
    `age`  INT             NOT NULL COMMENT '年齡',
    PRIMARY KEY (`id`),
    UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE
)
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = utf8mb4
    COLLATE = utf8mb4_bin;

-- 創(chuàng)建用戶
DROP USER IF EXISTS 'userB'@'%';
CREATE USER 'userB'@'%' IDENTIFIED BY '456456';

-- 給用戶賦予訪問第二個數(shù)據(jù)源的權(quán)限
GRANT ALL PRIVILEGES ON db2.* TO 'userB'@'%';
  • 數(shù)據(jù)源三
-- 創(chuàng)建第三個數(shù)據(jù)源
CREATE SCHEMA IF NOT EXISTS `db3` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

-- 創(chuàng)建第三個數(shù)據(jù)源中的數(shù)據(jù)表
CREATE TABLE IF NOT EXISTS `db3`.`manufacturer`
(
    `id`      BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',
    `name`    VARCHAR(100)    NOT NULL COMMENT '制造商名稱',
    `address` VARCHAR(100)    NOT NULL COMMENT '制造商地址',
    PRIMARY KEY (`id`),
    UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE
)
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = utf8mb4
    COLLATE = utf8mb4_bin;

-- 創(chuàng)建用戶
DROP USER IF EXISTS 'userC'@'%';
CREATE USER 'userC'@'%' IDENTIFIED BY '789789';

-- 給用戶賦予訪問第三個數(shù)據(jù)源的權(quán)限
GRANT ALL PRIVILEGES ON db3.* TO 'userC'@'%';

2> 創(chuàng)建Maven工程,添加依賴。文章來源地址http://www.zghlxwxcb.cn/news/detail-789477.html

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.jiyongliang</groupId>
        <artifactId>springboot3-datasource</artifactId>
        <version>0.0.1</version>
    </parent>
    <artifactId>springboot3-datasource-mix-multi</artifactId>

    <properties>
        <java.version>21</java.version>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-boot.version>3.2.2</spring-boot.version>
        <mysql-connector-j.version>8.3.0</mysql-connector-j.version>
        <mybatis-plus.version>3.5.5</mybatis-plus.version>
        <mybatis-spring.version>3.0.3</mybatis-spring.version>
        <lombok.version>1.18.30</lombok.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-b

到了這里,關(guān)于【Spring Boot 3】【數(shù)據(jù)源】自定義多數(shù)據(jù)源的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用dynamic-datasource-spring-boot-starter動態(tài)切換數(shù)據(jù)源操作數(shù)據(jù)庫(MyBatis-3.5.9)

    記錄 :383 場景 :使用dynamic-datasource-spring-boot-starter動態(tài)切換數(shù)據(jù)源,使用MyBatis操作數(shù)據(jù)庫。提供三種示例:一,使用@DS注解作用到類上。二,使用@DS注解作用到方法上。三,不使用注解,使用DynamicDataSourceContextHolder類在方法內(nèi)靈活切換不同數(shù)據(jù)源。 源碼: https://github.com/

    2024年01月20日
    瀏覽(24)
  • 【Spring Boot 3】【數(shù)據(jù)源】自定義JPA數(shù)據(jù)源

    軟件開發(fā)是一門實踐性科學(xué),對大多數(shù)人來說,學(xué)習(xí)一種新技術(shù)不是一開始就去深究其原理,而是先從做出一個可工作的DEMO入手。但在我個人學(xué)習(xí)和工作經(jīng)歷中,每次學(xué)習(xí)新技術(shù)總是要花費(fèi)或多或少的時間、檢索不止一篇資料才能得出一個可工作的DEMO,這占用了我大量的時

    2024年01月21日
    瀏覽(31)
  • 【Spring Boot 3】【數(shù)據(jù)源】自定義JPA多數(shù)據(jù)源

    軟件開發(fā)是一門實踐性科學(xué),對大多數(shù)人來說,學(xué)習(xí)一種新技術(shù)不是一開始就去深究其原理,而是先從做出一個可工作的DEMO入手。但在我個人學(xué)習(xí)和工作經(jīng)歷中,每次學(xué)習(xí)新技術(shù)總是要花費(fèi)或多或少的時間、檢索不止一篇資料才能得出一個可工作的DEMO,這占用了我大量的時

    2024年01月22日
    瀏覽(30)
  • 【Spring Boot 3】【數(shù)據(jù)源】自定義JDBC多數(shù)據(jù)源

    軟件開發(fā)是一門實踐性科學(xué),對大多數(shù)人來說,學(xué)習(xí)一種新技術(shù)不是一開始就去深究其原理,而是先從做出一個可工作的DEMO入手。但在我個人學(xué)習(xí)和工作經(jīng)歷中,每次學(xué)習(xí)新技術(shù)總是要花費(fèi)或多或少的時間、檢索不止一篇資料才能得出一個可工作的DEMO,這占用了我大量的時

    2024年01月23日
    瀏覽(27)
  • MyBatis Plus 插件 動態(tài)數(shù)據(jù)源實現(xiàn)原理與源碼講解 (dynamic-datasource-spring-boot-starter-master)

    MyBatis Plus 插件 動態(tài)數(shù)據(jù)源實現(xiàn)原理與源碼講解 (dynamic-datasource-spring-boot-starter-master)

    目錄 1. 介紹 2. 基本原理 3. 源碼介紹 3.1 使用 AOP 攔截,方法執(zhí)行前獲取到當(dāng)前方法要用的數(shù)據(jù)源 3.2 實現(xiàn)自定義?DataSource 接口,實現(xiàn) DataSource 接口的 getConnect 方法做動態(tài)處理 多數(shù)據(jù)源即一個項目中同時存在多個不同的數(shù)據(jù)庫連接池。 比如 127.0.0.1:3306/test? ?127.0.0.1:3307/test?

    2024年02月07日
    瀏覽(27)
  • 【Spring Boot】Spring Boot整合多數(shù)據(jù)源

    在實際的開發(fā)工作中,我們經(jīng)常會遇到需要整合多個數(shù)據(jù)源的情況,比如同時連接多個數(shù)據(jù)庫、讀寫分離、跨數(shù)據(jù)庫查詢等。本文將介紹如何使用Spring Boot來實現(xiàn)多數(shù)據(jù)源的整合,對于剛剛接觸開發(fā)的小伙伴可能有一些幫助。 在一個應(yīng)用程序中使用多個數(shù)據(jù)源意味著我們需要

    2024年02月10日
    瀏覽(27)
  • spring boot es | spring boot 整合elasticsearch | spring boot整合多數(shù)據(jù)源es

    spring boot es | spring boot 整合elasticsearch | spring boot整合多數(shù)據(jù)源es

    目錄 Spring Boot與ES版本對應(yīng) Maven依賴 配置類 使用方式 @Test中注入方式 @Component中注入方式 查詢文檔 實體類 通過ElasticsearchRestTemplate查詢 通過JPA查詢 保存文檔 參考鏈接 項目組件版本: Spring Boot:2.2.13.RELEASE Elasticsearch:6.8.0 JDK:1.8.0_66 Tips: 主要看第3列和第5列,根據(jù)ES版本選擇

    2023年04月18日
    瀏覽(27)
  • Spring Boot 配置雙數(shù)據(jù)源

    Spring Boot 配置雙數(shù)據(jù)源

    Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive. happy for hardess to solve denpendies. 需求: 1.基本步驟 添加依賴 添加 Spring Boot 和數(shù)據(jù)庫驅(qū)動的依賴 配置數(shù)據(jù)源 在 application.properties 或 application.yml 中分別配

    2024年01月22日
    瀏覽(23)
  • 【Java】Spring Boot配置動態(tài)數(shù)據(jù)源

    1.1 創(chuàng)建動態(tài)數(shù)據(jù)源 通過實現(xiàn)Spring提供的AbstractRoutingDataSource類,可以實現(xiàn)自己的數(shù)據(jù)源選擇邏輯,從而可以實現(xiàn)數(shù)據(jù)源的動態(tài)切換。 1.2 創(chuàng)建動態(tài)數(shù)據(jù)源配置類 跟配置靜態(tài)多數(shù)據(jù)源一樣,需要手動配置下面的三個 Bean,只不過DynamicDataSource類的targetDataSources是空的。 1.3 創(chuàng)建動

    2024年02月09日
    瀏覽(24)
  • 實例講解Spring boot動態(tài)切換數(shù)據(jù)源

    摘要: 本文模擬一下在主庫查詢訂單信息查詢不到的時候,切換數(shù)據(jù)源去歷史庫里面查詢。 本文分享自華為云社區(qū)《springboot動態(tài)切換數(shù)據(jù)源》,作者:小陳沒煩惱 。 在公司的系統(tǒng)里,由于數(shù)據(jù)量較大,所以配置了多個數(shù)據(jù)源,它會根據(jù)用戶所在的地區(qū)去查詢那一個數(shù)據(jù)庫

    2024年02月06日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包