知識庫 / Spring / Spring Boot RSS 訂閱

Spring Boot 多 SQL 導入文件配置

Spring Boot,Spring Persistence
HongKong
4
02:00 PM · Dec 06 ,2025

1. 概述

Spring Boot 允許我們導入樣例文本到我們的數據庫——主要用於準備集成測試的數據。 默認情況下,有以下兩種可能性。 我們可以使用 import.sql (Hibernate 支持) 或 data.sql (Spring JDBC 支持) 文件來加載數據

然而,有時我們希望將一個大型 SQL 文件分割成幾個較小的文件,例如為了提高可讀性或與模塊之間共享一些初始化數據。

在本教程中,我們將演示如何使用 Hibernate 和 Spring JDBC 完成此操作。

2. Hibernate 支持

我們可以定義包含樣負載載文件以及spring.jpa.properties.hibernate.hbm2ddl.import_files屬性的配置文件。該屬性可在測試資源文件夾內的 application.properties 文件中進行設置。

這適用於我們僅為 JUnit 測試加載樣負載載數據的情況。該值必須是一個以逗號分隔的文件列表。

spring.jpa.properties.hibernate.hbm2ddl.import_files=import_active_users.sql,import_inactive_users.sql

此配置將從兩個文件中加載示例數據:import_active_users.sqlimport_inactive_users.sql。 需要在此處説明的是,我們必須使用前綴 spring.jpa.properties 來傳遞值(JPA配置)到 EntityManagerFactory。

接下來,我們將演示如何使用 Spring JDBC 支持完成此操作。

3. Spring JDBC 支持

用於初始數據配置和 Spring JDBC 支持 的配置與 Hibernate 非常相似。 我們需要使用 spring.sql.init.data-locations 屬性:

spring.sql.init.data-locations=import_active_users.sql,import_inactive_users.sql

將值設置為如上所述,會產生與Hibernate支持相同的結果。然而,該解決方案的主要優勢在於可以使用 Ant 風格模式定義值:

spring.sql.init.data-locations=import_*_users.sql

以上值指示 Spring 搜索所有名稱匹配 import_*_users.sql 模式的文件,並導入其中包含的數據。

此屬性在 Spring Boot 2.5.0 版本中引入;在 Spring Boot 的早期版本中,我們需要使用 spring.datasource.data 屬性。

4. 結論

在本文中,我們演示瞭如何配置 Spring Boot 應用程序以從自定義 SQL 文件加載初始數據。

最後,我們展示了兩種可能性——Hibernate 和 Spring JDBC。它們都運行良好,最終的選擇取決於開發人員。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.