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

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.

目錄

Spring Boot 配置雙數(shù)據(jù)源,spring boot,spring boot,后端,java

概述

需求:

設計思路

實現(xiàn)思路分析

1.基本步驟

    1. 添加依賴
    • 添加 Spring Boot 和數(shù)據(jù)庫驅(qū)動的依賴
    1. 配置數(shù)據(jù)源
    • 在 application.properties 或 application.yml 中分別配置兩個數(shù)據(jù)源的連接信息
    1. 創(chuàng)建數(shù)據(jù)源配置類
    • 創(chuàng)建兩個數(shù)據(jù)源的配置類,分別配置數(shù)據(jù)源相關(guān)信息
    1. 配置數(shù)據(jù)源事務管理器
    • 創(chuàng)建兩個數(shù)據(jù)源的事務管理器,并指定數(shù)據(jù)源
    1. 配置 JPA 實體管理器工廠
    • 創(chuàng)建兩個 JPA 實體管理器工廠,并指定數(shù)據(jù)源和配置信息
    1. 配置事務注解支持
    • 啟用事務注解支持,并指定事務管理器
    1. 在 DAO 層使用數(shù)據(jù)源
    • 使用 @Qualifier 注解指定使用的數(shù)據(jù)源
    1. 測試雙數(shù)據(jù)源配置
    • 編寫測試代碼,分別使用兩個數(shù)據(jù)源進行數(shù)據(jù)庫操作

2.實例

在Spring Boot中配置雙數(shù)據(jù)源可以使用多個方法,下面介紹其中的一種方法。

  1. 引入相關(guān)依賴

首先在pom.xml文件中引入Spring Boot和數(shù)據(jù)庫連接池的依賴。例如,使用MySQL和H2數(shù)據(jù)庫,可以添加以下依賴:

<dependencies>
    <!-- Spring Boot -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!-- MySQL -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    <!-- H2 -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>
  1. 配置數(shù)據(jù)源

application.properties文件中配置兩個數(shù)據(jù)源的屬性,例如:

# MySQL 數(shù)據(jù)源配置
spring.datasource.mysql.url=jdbc:mysql://localhost:3306/db1
spring.datasource.mysql.username=root
spring.datasource.mysql.password=123456
spring.datasource.mysql.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.mysql.tomcat.max-wait=10000

# H2 數(shù)據(jù)源配置
spring.datasource.h2.url=jdbc:h2:mem:db2
spring.datasource.h2.username=sa
spring.datasource.h2.password=
spring.datasource.h2.driver-class-name=org.h2.Driver
spring.datasource.h2.tomcat.max-wait=10000
  1. 配置數(shù)據(jù)源對象

創(chuàng)建兩個數(shù)據(jù)源對象,用于連接數(shù)據(jù)庫。可以使用@Configuration注解和@Bean注解來實現(xiàn)。例如:

@Configuration
public class DataSourceConfig {
    
    @Bean(name = "mysqlDataSource")
    @ConfigurationProperties(prefix = "spring.datasource.mysql")
    public DataSource mysqlDataSource() {
        return DataSourceBuilder.create().build();
    }
    
    @Bean(name = "h2DataSource")
    @ConfigurationProperties(prefix = "spring.datasource.h2")
    public DataSource h2DataSource() {
        return DataSourceBuilder.create().build();
    }
}
  1. 配置JdbcTemplate對象

創(chuàng)建兩個JdbcTemplate對象,用于執(zhí)行SQL語句。可以使用@Autowired注解來實現(xiàn)。例如:

@Configuration
public class JdbcTemplateConfig {
    
    @Autowired
    @Qualifier("mysqlDataSource")
    private DataSource mysqlDataSource;
    
    @Autowired
    @Qualifier("h2DataSource")
    private DataSource h2DataSource;
    
    @Bean(name = "mysqlJdbcTemplate")
    public JdbcTemplate mysqlJdbcTemplate() {
        return new JdbcTemplate(mysqlDataSource);
    }
    
    @Bean(name = "h2JdbcTemplate")
    public JdbcTemplate h2JdbcTemplate() {
        return new JdbcTemplate(h2DataSource);
    }
}
  1. 使用JdbcTemplate對象

在代碼中使用JdbcTemplate對象來執(zhí)行SQL語句??梢允褂?code>@Autowired注解來實現(xiàn)。例如:

@RestController
public class UserController {

    @Autowired
    @Qualifier("mysqlJdbcTemplate")
    private JdbcTemplate mysqlJdbcTemplate;

    @Autowired
    @Qualifier("h2JdbcTemplate")
    private JdbcTemplate h2JdbcTemplate;

    @GetMapping("/users")
    public List<User> getUsers() {
        List<User> users = new ArrayList<>();

        // 使用mysqlJdbcTemplate執(zhí)行SQL語句
        mysqlJdbcTemplate.query("SELECT * FROM users", (rs, rowNum) -> {
            User user = new User();
            user.setId(rs.getInt("id"));
            user.setName(rs.getString("name"));
            users.add(user);
            return null;
        });

        // 使用h2JdbcTemplate執(zhí)行SQL語句
        h2JdbcTemplate.query("SELECT * FROM users", (rs, rowNum) -> {
            User user = new User();
            user.setId(rs.getInt("id"));
            user.setName(rs.getString("name"));
            users.add(user);
            return null;
        });

        return users;
    }
}

以上就是在Spring Boot中配置雙數(shù)據(jù)源的基本步驟。配置完成后,就可以使用兩個數(shù)據(jù)源執(zhí)行不同的SQL語句了。

參考資料和推薦閱讀

參考資料
官方文檔
開源社區(qū)
博客文章
書籍推薦

  1. https://blog.csdn.net/Stranger_Orz/article/details/122081492
  2. https://blog.csdn.net/qq_42666609/article/details/130221136
  3. https://blog.csdn.net/kk12927/article/details/106222483/

歡迎閱讀,各位老鐵,如果對你有幫助,點個贊加個關(guān)注唄!同時,期望各位大佬的批評指正~,如果有興趣,可以加文末的交流群,大家一起進步哈文章來源地址http://www.zghlxwxcb.cn/news/detail-813726.html

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

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

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

相關(guān)文章

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

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

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

    2024年01月21日
    瀏覽(30)
  • Spring Boot多數(shù)據(jù)源配置詳解及報錯問題解決

    Spring Boot多數(shù)據(jù)源配置詳解及報錯問題解決

    Spring Boot多數(shù)據(jù)源配置詳解 前幾天,公司提了個需求,對一個項目進行二次開發(fā),在開發(fā)過程中,需要配置多數(shù)據(jù)源來進行數(shù)據(jù)庫的操作。下面我將主鍵探索總結(jié)的配置流程和遇到的各種坑做以總結(jié),希望能夠幫到遇到同樣問題的友友。有錯的地方,請各位大佬留言指出。

    2024年02月16日
    瀏覽(21)
  • Spring Boot 2.7.5 HikariCP 連接池多數(shù)據(jù)源配置

    Spring Boot 2.7.5 HikariCP 連接池多數(shù)據(jù)源配置

    當前項目遇到需要連接多個數(shù)據(jù)庫的場景,此時需要引入多數(shù)據(jù)源了. 還有一些諸如以下的場景: 與第三方對接時,有些合作方并不會為了你的某些需求而給你開發(fā)一個功能,他們可以提供給你一個可以訪問數(shù)據(jù)源的只讀賬號,你需要獲取什么數(shù)據(jù)由你自己進行邏輯處理,這時

    2024年02月05日
    瀏覽(21)
  • spring boot下基于spring data jpa配置mysql+達夢多數(shù)據(jù)源(以不同包路徑方式,mysql為主數(shù)據(jù)源)

    :mysql 達夢/dameng jpa 多數(shù)據(jù)源 spring boot:2.1.17.RELEASE mysql驅(qū)動:8.0.21(跟隨boot版本) 達夢驅(qū)動:8.1.2.192 lombok:1.18.12(跟隨boot版本) 以mysql為主數(shù)據(jù)源,達夢為第二數(shù)據(jù)源方式配置 適用于舊項目二次開發(fā)接入達夢數(shù)據(jù)庫或基于通用二方/三方包做業(yè)務擴展等場景 將以不

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

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

    2024年02月10日
    瀏覽(28)
  • 【Spring Boot 3】【數(shù)據(jù)源】自定義多數(shù)據(jù)源

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

    2024年02月01日
    瀏覽(24)
  • 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日
    瀏覽(28)
  • 【Spring Boot 3】【數(shù)據(jù)源】自定義JPA數(shù)據(jù)源

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

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

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

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

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

    2024年01月22日
    瀏覽(31)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包