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

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

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

背景

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

介紹

《【Spring Boot 3】【數(shù)據(jù)源】自定義JDBC數(shù)據(jù)源》 說明了開發(fā)Spring Boot JDBC應用時如何自定義數(shù)據(jù)源,實際開發(fā)中一般只有在對接多個不同的數(shù)據(jù)源時才需自定義,本文介紹如何編寫自定義對接多個JDBC數(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> 準備2個數(shù)據(jù)源(創(chuàng)建2個數(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'@'%';

2> 創(chuàng)建Maven工程,添加依賴。文章來源地址http://www.zghlxwxcb.cn/news/detail-816810.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-jdbc-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>
        <lombok.version>1.18.30</lombok.version>
    </properties>

    <dependencyManagement>
   

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

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

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

相關(guān)文章

  • 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版本對應 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)
  • Spring Boot配置多個Kafka數(shù)據(jù)源

    application.properties配置文件如下 1.第一個kakfa 2.第二個kakfa 備注: 生產(chǎn)者消費者代碼參考鏈接,開發(fā)同學需要以實際情況按要求自己變更下代碼即可: Spring Boot 集成多個 Kafka_springboot集成多個kafka_//承續(xù)緣_紀錄片的博客-CSDN博客

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

    在之前的事件管理系統(tǒng)博客中有提到動態(tài)的多數(shù)據(jù)源配置 工作中難免需要做幾個工具方便自己偷懶,加上之前的擋板,數(shù)據(jù)源肯定沒法單一配置,所以需要多數(shù)據(jù)源配置。這里介紹兩種配置:動態(tài)數(shù)據(jù)源和固定數(shù)據(jù)源模式。這兩種我在目前的工作的工具開發(fā)中都有用到。 M

    2024年01月23日
    瀏覽(29)
  • 如何在Spring Boot中配置雙數(shù)據(jù)源?

    在許多應用程序中, 可能會遇到需要連接多個數(shù)據(jù)庫的情況 。這些數(shù)據(jù)庫可以是不同的類型,例如關(guān)系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫,或者它們可以是相同類型但包含不同的數(shù)據(jù)。為了處理這種情況,我們可以使用雙數(shù)據(jù)源來管理多個數(shù)據(jù)庫連接。 雙數(shù)據(jù)源是指在一個應用程序中

    2024年02月11日
    瀏覽(20)
  • Spring Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用

    Spring Boot 集成com.baomidou,引入dynamic-datasource依賴,實現(xiàn)多數(shù)據(jù)源,這里說下事務(wù)問題: 1、一個方法中使用同一個數(shù)據(jù)源; 2、一個方法中使用了多個數(shù)據(jù)源; 這里把dao、service列出來 1、dao層 ? 2、service層? spring boot實現(xiàn)多數(shù)據(jù)源:Spring Boot集成Druid實現(xiàn)多數(shù)據(jù)源的兩種方式_濤

    2024年02月11日
    瀏覽(16)
  • Spring Boot MyBatis Plus 配置數(shù)據(jù)源詳解

    Spring Boot MyBatis Plus 配置數(shù)據(jù)源詳解

    ??歡迎來到架構(gòu)設(shè)計專欄~Spring Boot MyBatis Plus 配置數(shù)據(jù)源詳解 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:架構(gòu)設(shè)計 ??其他專欄:Java學習路線 Java面試技巧 Java實戰(zhàn)項目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學習 ??文章作者技術(shù)和水平有限,如果文

    2024年01月21日
    瀏覽(29)
  • Spring Boot 多數(shù)據(jù)源及事務(wù)解決方案

    Spring Boot 多數(shù)據(jù)源及事務(wù)解決方案

    一個主庫和N個應用庫的數(shù)據(jù)源,并且會同時操作主庫和應用庫的數(shù)據(jù),需要解決以下兩個問題: 如何動態(tài)管理多個數(shù)據(jù)源以及切換? 如何保證多數(shù)據(jù)源場景下的數(shù)據(jù)一致性(事務(wù))? 本文主要探討這兩個問題的解決方案,希望能對讀者有一定的啟發(fā)。 通過擴展Spring提供的抽象

    2024年02月10日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包