Spring boot 啟用第二數據源

1. 數據源配置代碼:

import com.alibaba.druid.pool.DruidDataSource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;import javax.annotation.PostConstruct;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;@Slf4j
@Configuration
@ConditionalOnProperty(prefix = "sms.secondary", name = "enabled", havingValue = "true", matchIfMissing = false) //配置是否啟用
public class DsDbConfiguration {@Bean@ConfigurationProperties("spring.datasource.secondary.ds")public DruidDataSource jjxxDataSource() {DruidDataSource dataSource = (DruidDataSource) DataSourceBuilder.create().type(DruidDataSource.class).build();return dataSource;}@Beanpublic JdbcTemplate jjxxDataTemplate() {return new JdbcTemplate(jjxxDataSource());}@PostConstructpublic void testConnection() {try (Connection conn = jjxxDataSource().getConnection()) {DatabaseMetaData meta = conn.getMetaData();log.info("MySQL 第二數據源 連接成功! 服務版本: {}", meta.getDatabaseProductVersion());} catch (SQLException e) {log.error("MySQL  第二數據源 連接失敗", e);log.error(e.getMessage(), e);}}
}

2.新建entity

import lombok.Data;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.Date;/***  Entity* @author * @time   */
@Data
@Entity
public class ThirdEntity{private static final long serialVersionUID = 1L;/*** 發案時間*/@Column(name = "fasj")private Date fasj;/*** 發案行政區劃*/@Column(name = "faxzqh")private String faxzqh;/***報警電話*/@Column(name = "bjdh")private String bjdh;//省略其他字段}

3. 查詢數據:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;import java.util.List;@Repository
public class JieJingDao {private final NamedParameterJdbcTemplate namedParameterJdbcTemplate;@Autowiredpublic JieJingDao(@Qualifier("jjxxDataTemplate") JdbcTemplate jdbcTemplate) {this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);}// 查詢多個記錄public List<ThirdEntity> queryEntityList(String start, String end) {String sql = "SELECT * FROM third_table WHERE  DATE_FORMAT(bjsj,'%Y-%m-%d %H:%i:%S') >=:start and DATE_FORMAT(bjsj,'%Y-%m-%d %H:%i:%S') <= :end";MapSqlParameterSource params = new MapSqlParameterSource();params.addValue("start", start);params.addValue("end", end);return namedParameterJdbcTemplate.query(sql, params, new BeanPropertyRowMapper<>(ThirdEntity.class));}}

4. 數據源配置信息:

spring.datasource.secondary.ds.url: jdbc:mysql://localhost:3306/thirdDatabase?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false&rewriteBatchedStatements=true
spring.datasource.secondary.ds.url.username: root
spring.datasource.secondary.ds.url.password: root

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95042.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95042.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95042.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Wi-Fi 時延與掉包的關鍵因素全解析

在無線網絡性能優化中&#xff0c;時延&#xff08;Latency&#xff09;與掉包&#xff08;Packet Loss&#xff09;是最核心的兩個指標。本文將從 物理層、MAC層、系統棧、業務形態與環境 等多個維度&#xff0c;對 Wi-Fi 時延與掉包的關鍵因素進行全面梳理&#xff0c;并結合…

《Python 文本分析實戰:從單詞頻率統計到高效可視化的全流程指南》

《Python 文本分析實戰:從單詞頻率統計到高效可視化的全流程指南》 一、引言:小任務背后的大世界 在我多年的開發與教學中,文本處理始終是一個繞不開的主題。無論是日志分析、自然語言處理,還是搜索引擎、推薦系統,幾乎所有數據驅動的系統都離不開對文本的理解。而“統計…

12KM無人機高清圖傳通信模組——打造未來空中通信新高度

在無人機技術飛速發展的今天&#xff0c;高清圖傳和穩定的通信模塊無疑是提高無人機作業效率和可靠性的關鍵因素。作為新一代無人機核心技術之一&#xff0c;深圳云望物聯12KM無人機高清圖傳通信模組憑借其卓越的性能&#xff0c;正逐步成為行業內的寵兒&#xff0c;成為無人機…

【LeetCode 熱題 100】62. 不同路徑——(解法二)遞推

Problem: 62. 不同路徑 文章目錄整體思路完整代碼時空復雜度時間復雜度&#xff1a;O(m * n)空間復雜度&#xff1a;O(m * n)整體思路 這段代碼同樣旨在解決 “不同路徑” 問題&#xff0c;但它采用的是一種 自底向上&#xff08;Bottom-Up&#xff09;的動態規劃 方法&#x…

C++ 高階錯誤解析:MSVC 與 Qt 全景指南

在 C 開發中&#xff0c;尤其是在 Windows 平臺使用 MSVC 或 Qt 框架 時&#xff0c;程序員經常會遇到編譯錯誤、鏈接錯誤和運行時異常。本文將系統梳理這些問題&#xff0c;按 語法錯誤、類型錯誤、鏈接錯誤、Qt 運行錯誤 分類&#xff0c;并給出 觸發示例、原因分析及修復策略…

基于Net海洋生態環境保護系統的設計與實現(代碼+數據庫+LW)

摘要 隨著全球氣候變化和人類活動的加劇&#xff0c;海洋生態系統面臨著前所未有的威脅。污染、過度捕撈、棲息地破壞等問題嚴重影響了海洋生物多樣性和生態平衡。為了應對海洋生態系統面臨的嚴重威脅&#xff0c;如污染、過度捕撈和棲息地破壞等問題&#xff0c;利用C#語言和…

DoIP路由激活報文

目錄 DoIP路由激活報文詳解 基本概念 報文結構 響應報文 通信流程 注意事項 **DoIP (Diagnostics over Internet Protocol) 報文詳解** **1. DoIP 報文結構** **1.1 通用報文格式** **2. 常見 DoIP 報文類型** **3. 典型 DoIP 報文示例** **3.1 車輛識別請求(廣播)** **3.2 車…

學習Python中Selenium模塊的基本用法(8:元素操作-2)

定位網頁元素后&#xff0c;調用is_displayed函數可以判斷元素的顯示狀態&#xff0c;如百度網站中有默認隱藏的元素&#xff0c;此時即可使用is_displayed函數判斷該元素的顯示狀態&#xff0c;如下面代碼所示&#xff1a;driver webdriver.Chrome() driver.get("https:…

雙指針:從「LC11 盛最多水的容器」到「LC42 接雨水」

LC11 盛最多水的容器 選擇兩條線&#xff0c;它們與x軸構成的容器可以盛的水量取決于兩條線中較短的那條以及兩條線之間的距離。 樸素的思想是使用i和j遍歷height中的所有線&#xff0c;但是這樣的時間復雜度是O(n2)O(n^2)O(n2)。 我們讓i從0開始&#xff0c;j從n-1開始&…

WINTRUST!_GetMessage函數分析之CRYPT32!CryptSIPGetSignedDataMsg函數的作用是得到nt5inf.cat的信息

UEDIT打開nt5inf.cat。第一部分&#xff1a;BOOL _GetMessage(CRYPT_PROVIDER_DATA *pProvData) {DWORD dwMsgEncoding;SIP_SUBJECTINFO *pSubjInfo;SIP_DISPATCH_INFO *pSip;DWORD cbEncodedMsg;BYTE *pbEncodedMsg;DWORD …

編譯esp32報錯解決辦法

報錯信息&#xff1a;CMake Error at build/CMakeFiles/git-data/grabRef.cmake:48 (file):file failed to open for reading (No such file or directory):這個錯誤是由于 Git 的安全檢查導致的。從錯誤信息可以看出&#xff0c;Git 檢測到了"可疑的所有權"&#xf…

【AI】常見8大LLM大語言模型地址

序號AI名稱地址1 ChatGPT &#xff08;OpenAI&#xff09;https://chat.openai.com/2Gemini (Google personal AI assistant)https://gemini.google.com/app3Grok (xAI Grok LLM)https://x.ai/4DeepSeek (DeepSeek AI chatbot)DeepSeek5Claude (Anthropic Claude AI)App unavai…

軟件系統的部署方式:單機、主備(冷主備、熱主備)、集群

一、單機部署單機部署是將軟件系統所有組件&#xff08;應用、數據庫等&#xff09;部署在單臺服務器上&#xff0c;架構簡單、成本低但存在單點故障風險&#xff0c;適用于低負載或測試場景。一臺服務器壞了&#xff0c;軟件系統無法服務。二、主備&#xff08;冷主備、熱主備…

從體驗到系統工程丨上手評測國內首款 AI 電商 App

作者&#xff1a;王晨&#xff08;望宸&#xff09; 產品界面&#xff0c;往往體現了產品的設計哲學&#xff0c;界面是產品的第一入口。 近期&#xff0c;1688 推出了 1688 AI App&#xff0c;這貌似是國內第一個電商領域的獨立 AI App 應用&#xff08;若不是&#xff0c;歡…

QML QQuickImage: Cannot open: qrc:/images/shrink.png(已解決)

此問題是 在 QT Quick 項目 顯示圖片的時候 遇到&#xff0c;顯示&#xff1a;QML QQuickImage: Cannot open: qrc:/images/shrink.png&#xff0c;不能 打開 圖片。為了解決此問題&#xff0c;找了很多資料&#xff0c;雖然是比較簡單&#xff0c;但對于初學者來說&#xff0c…

maven scope 詳解

Maven 的 scope用于定義依賴項在項目構建生命周期中的可見性和傳遞性&#xff0c;控制依賴在編譯、測試、運行等階段的可用性及是否被打包到最終產物中。以下是詳細解析&#xff1a;?? ??一、Scope 的核心作用????生命周期控制??決定依賴在編譯、測試、運行階段的可用…

Python的一次實際應用:利用Python操作Word文檔的頁碼

Python的一次實際應用&#xff1a;利用Python操作Word文檔的頁碼 需求&#xff1a;一次性處理24個文檔的頁碼。 文檔詳情&#xff1a; 1、每個word文檔包含800頁左右&#xff0c;每一頁包含一個標題和一張圖片。 2、由于圖片有橫排也有豎排&#xff0c;因此&#xff0c;每頁文檔…

Android15 GKI版本分析Kernel Crash問題

環境介紹編譯主機&#xff1a;amd64 Ubuntu 22.04Android源碼&#xff1a;Android15 GKIKernel版本&#xff1a;Linux 6.16Android構建系統&#xff1a;bazel構建工具鏈&#xff1a;gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-定位Linux…

rocky 9部署Zabbix監控

一、rocky安裝 需要注意在設置root用戶密碼時&#xff0c;勾選ssh遠程連接 安裝完成后直接用root登錄 1. 網絡配置 輸入nmtui 進入網絡配置界面 選擇 Edit a connection&#xff0c;再選擇接口 ens3 IPV4更改為Maual 手動模式 根據實際環境配置IP地址 重啟網絡 systemctl …

從9.4%到13.5%:ICDM2025錄取率觸底反彈,競爭壓力稍緩

近日&#xff0c;ICDM 2025公布了論文錄用結果。本次大會共收到785篇有效論文投稿&#xff0c;最終&#xff0c;共有106篇常規論文和70篇短論文被接收&#xff0c;總體接收率為22.4%&#xff0c;其中全文論文的接收率為13.5%。與前年9.4%、去年11.09%的錄取率相比&#xff0c;I…