欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot?配置多個JdbcTemplate的實現(xiàn)步驟

 更新時間:2024年11月27日 08:40:20   作者:憂傷夏天的風(fēng)  
本文介紹了在SpringBoot中配置多個JdbcTemplate的方法,包括創(chuàng)建項目、添加依賴、配置數(shù)據(jù)源和多個JdbcTemplate的使用,感興趣的可以了解一下

前言

開發(fā)中使用多數(shù)據(jù)源配置是一個非常常見的需求。Spring和SpringBoot中,對此都有相應(yīng)的解決方案。

多數(shù)據(jù)源的首選分布式數(shù)據(jù)庫中間件MyCat或者Sharing-Jdbc去解決相關(guān)問題。使用MyCat,然后分表策略使用sharding-by-intfile。

本文我們只討論如何在SpringBoot中簡單配置多個JdbcTemplate。

一、創(chuàng)建一個SpringBoot 項目,并引入如下依賴

<!--web應(yīng)用-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!--jdbc -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<!-- mysql驅(qū)動 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<!--druid-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
</dependency>

<!--單元測試-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

二、在application.properties中添加數(shù)據(jù)源配置

spring.datasource.one.url=jdbc:mysql://localhost:3306/oy1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.one.jdbcUrl=jdbc:mysql://localhost:3306/oy1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.one.username=***
spring.datasource.one.password=***
spring.datasource.one.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.two.url=jdbc:mysql://localhost:3306/oy2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.two.jdbcUrl=jdbc:mysql://localhost:3306/oy2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.two.username=***
spring.datasource.two.password=***
spring.datasource.two.driver-class-name=com.mysql.cj.jdbc.Driver

三、新增DadaSourceConfig.java配置多個數(shù)據(jù)源以及JdbcTemplate,代碼如下:

package com.bestoyc.jdbctemplatedemo;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.sql.DataSource;

/**
 * @author oyc
 * @Title: DataSourceConfig
 * @ProjectName jdbctemplatedemo
 * @Description: TODO
 * @date 2019/9/22 0:47
 */
@Configuration
public class DataSourceConfig {

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.one")
    @Qualifier("oneDataSource")
    DataSource dsOne() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.two")
    @Qualifier("twoDataSource")
    DataSource dsTwo() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "oneJdbcTemplate")
    public JdbcTemplate primaryJdbcTemplate(
            @Qualifier("oneDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }

    @Bean(name = "twoJdbcTemplate")
    public JdbcTemplate secondaryJdbcTemplate(
            @Qualifier("twoDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}

四、多個JdbcTemplate使用

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

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

@RequestMapping("/createUser1")
public String createUser1() {
    oneJdbcTemplate.update("INSERT INTO `user`(`id`, `name`, `age`) VALUES (?,?,?);", null,"ouyang", 12);
    return "success";
}

@RequestMapping("/createUser2")
public String createUser2() {
    twoJdbcTemplate.update("INSERT INTO `user`(`id`, `name`, `age`) VALUES (?,?,?);", null,"ouyang", 12);
    return "success";
}

這里只是簡單使用,讀者可以根據(jù)自己的業(yè)務(wù)需要添加相應(yīng)的AOP用戶數(shù)據(jù)源的切換。

到此這篇關(guān)于SpringBoot 配置多個JdbcTemplate的文章就介紹到這了,更多相關(guān)SpringBoot 配置多個JdbcTemplate內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring boot集成shiro詳細(xì)教程(小結(jié))

    spring boot集成shiro詳細(xì)教程(小結(jié))

    這篇文章主要介紹了spring boot 集成shiro詳細(xì)教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Springboot事務(wù)失效的幾種情況解讀

    Springboot事務(wù)失效的幾種情況解讀

    這篇文章主要介紹了Springboot事務(wù)失效的幾種情況解讀,因為Spring AOP默認(rèn)使用動態(tài)代理,會給被代理的類生成一個代理類,事務(wù)相關(guān)的操作都通過代理來完成,使用內(nèi)部方法調(diào)用時,使用的是實例調(diào)用,沒有通過代理類調(diào)用方法,因此事務(wù)不會檢測到失敗,需要的朋友可以參考下
    2023-10-10
  • 使用MDC實現(xiàn)日志鏈路跟蹤

    使用MDC實現(xiàn)日志鏈路跟蹤

    這篇文章主要介紹了使用MDC實現(xiàn)日志鏈路跟蹤,在微服務(wù)環(huán)境中,我們經(jīng)常使用Skywalking、CAT等去實現(xiàn)整體請求鏈路的追蹤,但是這個整體運維成本高,架構(gòu)復(fù)雜,我們來使用MDC通過Log來實現(xiàn)一個輕量級的會話事務(wù)跟蹤功能,下面就來看看具體的過程吧,需要的朋友可以參考一下
    2022-01-01
  • 解決mybatis plus報錯Invalid bound statement (not found):問題

    解決mybatis plus報錯Invalid bound statement 

    在使用MyBatis時遇到InvalidBoundStatement異常,常因多個MapperScan配置沖突或者包掃描路徑設(shè)置錯誤,解決方法包括保留一個MapperScan聲明、檢查jar包沖突、確保命名空間和掃描路徑正確,使用@TableId注解指定主鍵
    2024-11-11
  • Spring用三級緩存處理循環(huán)依賴的方法詳解

    Spring用三級緩存處理循環(huán)依賴的方法詳解

    這篇文章主要介紹了Spring用三級緩存處理循環(huán)依賴的方法,在Spring?框架中,依賴注入是其核心特性之一,它允許對象之間的依賴關(guān)系在運行時動態(tài)注入,然而,當(dāng)多個Bean之間的依賴關(guān)系形成一個閉環(huán)時,就會出現(xiàn)循環(huán)依賴問題,本文就為解決此問題,需要的朋友可以參考下
    2025-02-02
  • 基于springboot實現(xiàn)整合shiro實現(xiàn)登錄認(rèn)證以及授權(quán)過程解析

    基于springboot實現(xiàn)整合shiro實現(xiàn)登錄認(rèn)證以及授權(quán)過程解析

    這篇文章主要介紹了基于springboot實現(xiàn)整合shiro實現(xiàn)登錄認(rèn)證以及授權(quán)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Java 正則表達(dá)式詳細(xì)使用

    Java 正則表達(dá)式詳細(xì)使用

    這篇文章主要介紹了Java 正則表達(dá)式詳細(xì)使用,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-10-10
  • 簡單了解JAVA內(nèi)存區(qū)域效果知識

    簡單了解JAVA內(nèi)存區(qū)域效果知識

    這篇文章主要介紹了簡單了解JAVA內(nèi)存區(qū)域效果知識,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 初學(xué)者,Spring快速入門

    初學(xué)者,Spring快速入門

    本文主要講解了Spring框架的基礎(chǔ)知識,Spring是一個輕量級的開源框架,它是為簡化企業(yè)級應(yīng)用開發(fā)而生。文中運用代碼非常詳細(xì)的介紹了相關(guān)知識,需要了解的小伙伴可以參考一下哦
    2021-09-09
  • JAVA String.valueOf()方法的用法說明

    JAVA String.valueOf()方法的用法說明

    這篇文章主要介紹了JAVA String.valueOf()方法的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評論