最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

說(shuō)明:所有的代碼基于SpringBoot 2.0.3版本

背景

在應(yīng)用程序啟動(dòng)后,可以自動(dòng)執(zhí)行建庫(kù)、建表等SQL腳本.下文中以要自動(dòng)化執(zhí)行people.sql腳本為例說(shuō)明,腳本在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í)行腳本的功能。通過(guò)自定義DataSourceInitializer Bean就可以實(shí)現(xiàn)按照業(yè)務(wù)要求執(zhí)行特定的腳本。

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

前提

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

方法

通過(guò)@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對(duì)象
   */
  @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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java設(shè)計(jì)模式之代理模式與裝飾模式實(shí)例詳解

    Java設(shè)計(jì)模式之代理模式與裝飾模式實(shí)例詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之代理模式與裝飾模式,結(jié)合具體實(shí)例形式分析了代理模式與裝飾模式的概念、功能、java實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下
    2017-09-09
  • grade構(gòu)建閱讀spring源碼環(huán)境 Idea2020.3的過(guò)程

    grade構(gòu)建閱讀spring源碼環(huán)境 Idea2020.3的過(guò)程

    這篇文章主要介紹了grade構(gòu)建閱讀spring源碼環(huán)境 Idea2020.3,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • springboot集成KoTime的配置過(guò)程

    springboot集成KoTime的配置過(guò)程

    koTime是一個(gè)springboot項(xiàng)目性能分析工具,通過(guò)追蹤方法調(diào)用鏈路以及對(duì)應(yīng)的運(yùn)行時(shí)長(zhǎng)快速定位性能瓶頸,這篇文章主要介紹了springboot集成KoTime,需要的朋友可以參考下
    2022-06-06
  • 自己動(dòng)手寫的mybatis分頁(yè)插件(極其簡(jiǎn)單好用)

    自己動(dòng)手寫的mybatis分頁(yè)插件(極其簡(jiǎn)單好用)

    最近做了個(gè)項(xiàng)目,需要用到mybatis分頁(yè)功能,網(wǎng)上找了很多插件,都不太合適,于是就自己動(dòng)手寫了個(gè)mybatis分頁(yè)插件功能,非常不錯(cuò),代碼簡(jiǎn)單易懂,需要的朋友參考下吧
    2016-11-11
  • Bloc事件流是一個(gè)阻塞隊(duì)列結(jié)論解析

    Bloc事件流是一個(gè)阻塞隊(duì)列結(jié)論解析

    這篇文章主要為大家介紹了Bloc事件流是一個(gè)阻塞隊(duì)列結(jié)論解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Java中關(guān)于isEmpty方法、null以及““的區(qū)別

    Java中關(guān)于isEmpty方法、null以及““的區(qū)別

    這篇文章主要介紹了Java中關(guān)于isEmpty方法、null以及““的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • java中的executeQuery()方法使用

    java中的executeQuery()方法使用

    這篇文章主要介紹了java中的executeQuery()方法使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot整合Freemarker實(shí)現(xiàn)頁(yè)面靜態(tài)化的詳細(xì)步驟

    SpringBoot整合Freemarker實(shí)現(xiàn)頁(yè)面靜態(tài)化的詳細(xì)步驟

    這篇文章主要介紹了SpringBoot整合Freemarker實(shí)現(xiàn)頁(yè)面靜態(tài)化,第一步要?jiǎng)?chuàng)建項(xiàng)目添加依賴,本文分步驟給大家詳細(xì)講解,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • Java實(shí)現(xiàn)調(diào)用MySQL存儲(chǔ)過(guò)程詳解

    Java實(shí)現(xiàn)調(diào)用MySQL存儲(chǔ)過(guò)程詳解

    相信大家都知道存儲(chǔ)過(guò)程是在大型數(shù)據(jù)庫(kù)系統(tǒng)中,一組為了完成特定功能的SQL語(yǔ)句集。存儲(chǔ)過(guò)程是數(shù)據(jù)庫(kù)中的一個(gè)重要對(duì)象,任何一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫(kù)應(yīng)用程序都應(yīng)該用到存儲(chǔ)過(guò)程。Java調(diào)用mysql存儲(chǔ)過(guò)程,實(shí)現(xiàn)如下,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-11-11
  • JAVA JSP頁(yè)面技術(shù)之EL表達(dá)式整理歸納總結(jié)

    JAVA JSP頁(yè)面技術(shù)之EL表達(dá)式整理歸納總結(jié)

    這篇文章主要介紹了java中JSP頁(yè)面技術(shù)之EL表達(dá)式概念作用以及語(yǔ)法等的使用,需要的朋友可以參考
    2017-04-04

最新評(píng)論

康保县| 双牌县| 宣武区| 牟定县| 葵青区| 望谟县| 萨迦县| 青龙| 门头沟区| 龙胜| 沙田区| 平利县| 阿勒泰市| 阿拉尔市| 探索| 富民县| 台前县| 静安区| 前郭尔| 易门县| 繁昌县| 镶黄旗| 通化市| 夹江县| 龙海市| 平泉县| 常宁市| 湘西| 盱眙县| 关岭| 定南县| 广灵县| 临颍县| 达州市| 阿勒泰市| 华容县| 新源县| 利川市| 大姚县| 图们市| 马山县|