背景
軟件開發(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ù)庫)。文章來源:http://www.zghlxwxcb.cn/news/detail-816810.html
- 數(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)!