如何在Spring启动应用程序启动时向表中插入数据?

时间:2016-05-16 12:03:29

标签: spring spring-boot spring-data spring-data-jpa jhipster

如何在Spring Boot应用程序启动时将数据插入表中?我的应用程序由JHipster生成。我需要检查的是,该特定数据是否已存在于该表中。如果不是,我应该添加它。

3 个答案:

答案 0 :(得分:2)

如果您的应用程序是由JHipster生成的,那么它应该已经包含并正确配置Liquibase。

您有几个选择:

  • 您可以使用Liquibase的insert更改来插入数据。
  • 您可以将数据放入CSV文件并使用loadData更改加载它。在loadData中查找00000000000000_initial_schema.xml代码作为示例。
  • 您可以使用sql更改直接运行本机SQL。

所有三个选项都可以与preconditions结合使用,以确保在尝试插入数据之前数据不存在。如果您每次启动应用程序时都需要运行变更集,则可以使用runAlways="true"属性(this页面上的文档)。

答案 1 :(得分:1)

您可以在服务类中创建一个功能,检查数据是否已经存在,如果没有,则保存该数据。

答案 2 :(得分:0)

您可以实现ApplicationRunner并使用存储库来执行您需要执行的操作。

如果ApplicationRunner是一个spring bean,它将在应用程序启动时运行。

对于更复杂的要求,我会尝试依赖flyway that has good integration with spring boot

之类的工具