2016-05-16 14 views
0

如何將數據插入Spring Boot應用程序啓動表上?我的應用程序由JHipster生成。我需要檢查的是,如果該特定數據已經存在於該表中或者沒有。如果它不,我應該添加它。如何在彈簧啓動應用程序啓動時將數據插入表中?

+0

你能告訴我們你已經試過了嗎?關於您閱讀的主題的任何文章?你有沒有遇到特定的錯誤? – miensol

+1

您是否嘗試過[this](http://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html)? –

回答

1

您可以實施ApplicationRunner並使用存儲庫來執行任何您需要的操作。

如果ApplicationRunner是一個spring bean,它將在應用程序啓動時運行。

對於更復雜的要求,我會嘗試依靠的工具,像flyway that has good integration with spring boot

+0

謝謝。我創建了一個bean。用@ PostConstruct註解保留一個方法。從方法中調用服務。工作正常。 – fatCop

1

如果被JHipster生成您的應用程序,那麼它應該已經包含和被正確配置Liquibase。

您有幾種選擇:

  • 您可以使用Liquibase的insert改變插入數據。
  • 您可以將數據存入CSV文件並使用loadData更改加載它。示例中查找00000000000000_initial_schema.xml中的loadData標記。
  • 您可以使用sql更改直接運行原生SQL。

所有這三個選項都可以與preconditions合併,以確保數據在嘗試插入之前不存在。如果每次啓動應用程序時都需要運行更改集,則可以使用runAlways="true"屬性(文檔位於this頁面)。

1

您可以在您的服務等級中創建一個函數,該函數檢查數據是否已經存在,如果不存在,則保存該數據。

相關問題