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

Spring Boot中自動(dòng)執(zhí)行sql腳本的實(shí)現(xiàn)

 更新時(shí)間:2020年12月20日 16:25:51   作者:大哥你先走  
這篇文章主要介紹了Spring Boot中自動(dòng)執(zhí)行sql腳本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

說明:所有的代碼基于SpringBoot 2.0.3版本

背景

在應(yīng)用程序啟動(dòng)后,可以自動(dòng)執(zhí)行建庫、建表等SQL腳本.下文中以要自動(dòng)化執(zhí)行people.sql腳本為例說明,腳本在SpringBoot工程中的路徑為:classpath:people.sql,腳本的具體內(nèi)容如下:

CREATE TABLE IF NOT EXISTS people(
  persion_id BIGINT NOT NULL AUTO_INCREMENT,
  first_name VARCHAR(20),
  last_name VARCHAR(20),
  PRIMARY KEY (persion_id)
);

實(shí)現(xiàn)核心

在SpringBoot的架構(gòu)中,DataSourceInitializer類可以實(shí)現(xiàn)自動(dòng)執(zhí)行腳本的功能。通過自定義DataSourceInitializer Bean就可以實(shí)現(xiàn)按照業(yè)務(wù)要求執(zhí)行特定的腳本。

實(shí)現(xiàn)方法

前提

已經(jīng)構(gòu)建了DataSource Bean。

方法

通過@Configuration、@Bean和@Value三個(gè)注解實(shí)現(xiàn)自定義DataSourceInitializer Bean,現(xiàn)在Bean的定義中實(shí)現(xiàn)自動(dòng)化執(zhí)行腳本的業(yè)務(wù)邏輯。

代碼

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.jdbc.datasource.init.DataSourceInitializer;
import org.springframework.jdbc.datasource.init.DatabasePopulator;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import javax.sql.DataSource;
@Configuration
public class BatchTaskDataSourceInitializer {
  /**
   * 構(gòu)建Resource對象
   */
  @Value("classpath:schema-all.sql")
  private Resource businessScript;

  /**
   * 自定義Bean實(shí)現(xiàn)業(yè)務(wù)的特殊需求
   * @param dataSource
   * @return
   */
  @Bean
  public DataSourceInitializer dataSourceInitializer(final DataSource dataSource) {
    final DataSourceInitializer initializer = new DataSourceInitializer();
    // 設(shè)置數(shù)據(jù)源
    initializer.setDataSource(dataSource);
    initializer.setDatabasePopulator(databasePopulator());
    return initializer;
  }

  private DatabasePopulator databasePopulator() {
    final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
    populator.addScripts(businessScript);
    return populator;
  }
}

到此這篇關(guān)于Spring Boot中自動(dòng)執(zhí)行sql腳本的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot自動(dòng)執(zhí)行sql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring?DI依賴注入過程解析

    Spring?DI依賴注入過程解析

    依賴注入是由“依賴”和“注入”兩個(gè)詞匯組合而成,那么我們再一次順藤摸瓜,分別分析這兩個(gè)詞語,這篇文章主要介紹了Spring?DI依賴注入詳解,需要的朋友可以參考下
    2022-11-11
  • java中ResultSet遍歷數(shù)據(jù)操作

    java中ResultSet遍歷數(shù)據(jù)操作

    這篇文章主要介紹了java中ResultSet遍歷數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • MyBatis使用動(dòng)態(tài)表或列代碼解析

    MyBatis使用動(dòng)態(tài)表或列代碼解析

    這篇文章主要介紹了MyBatis使用動(dòng)態(tài)表或列代碼解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Java編程WeakHashMap實(shí)例解析

    Java編程WeakHashMap實(shí)例解析

    這篇文章主要介紹了Java編程WeakHashMap實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • IntelliJ?IDEA?2022安裝注冊永久激活

    IntelliJ?IDEA?2022安裝注冊永久激活

    java開發(fā)工具IntelliJ?IDEA深受用戶喜愛,很多朋友對這個(gè)idea開發(fā)工具比較忠心,一旦有新版本發(fā)出,很多小伙伴就迫不及待的想更新,今天小編給大家?guī)砹薸dea2022.1最新永久激活碼,親測有效,喜歡的朋友快來下載體驗(yàn)吧
    2022-08-08
  • Java?Nacos與Gateway的使用操作筆記

    Java?Nacos與Gateway的使用操作筆記

    Spring?Cloud?Gateway?是一個(gè)用于構(gòu)建?API?網(wǎng)關(guān)的框架,提供了多種服務(wù)路由、過濾和負(fù)載均衡的功能,這篇文章主要介紹了Java?Nacos與Gateway的使用操作筆記,需要的朋友可以參考下
    2024-08-08
  • Collection stream使用示例詳解

    Collection stream使用示例詳解

    這篇文章主要介紹了Collection stream使用示例,stream流幾乎可以完成對集合的任意操作,映射、去重、分組、排序、過濾等
    2022-12-12
  • SpringBoot結(jié)合Redis實(shí)現(xiàn)接口冪等性的示例代碼

    SpringBoot結(jié)合Redis實(shí)現(xiàn)接口冪等性的示例代碼

    本文主要介紹了SpringBoot結(jié)合Redis實(shí)現(xiàn)接口冪等性的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Java實(shí)現(xiàn)英文句子中的單詞順序逆序輸出的方法

    Java實(shí)現(xiàn)英文句子中的單詞順序逆序輸出的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)英文句子中的單詞順序逆序輸出的方法,涉及java字符串遍歷、判斷、截取、輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Java字符串拼接+和StringBuilder的比較與選擇

    Java字符串拼接+和StringBuilder的比較與選擇

    Java 提供了兩種主要的方式:使用 "+" 運(yùn)算符和使用 StringBuilder 類,本文主要介紹了Java字符串拼接+和StringBuilder的比較與選擇,感興趣的可以了解一下
    2023-10-10

最新評論