Spring boot 当使用Spring Boot时,如何防止HSQLDB在应用程序运行时持久化数据?

Spring boot 当使用Spring Boot时,如何防止HSQLDB在应用程序运行时持久化数据?,spring-boot,hsqldb,Spring Boot,Hsqldb,我运行的是Spring Boot/Web应用程序,在原型设计过程中使用的是嵌入式HSQLDB。作为其中的一部分,我不想在两次运行之间保存数据。我希望系统中的唯一数据是来自这些脚本的数据 如何修改配置以实现这一点 @Configuration public class RepoConfig { @Bean public DataSource dataSource() { EmbeddedDatabaseBuilder builder = new EmbeddedD

我运行的是Spring Boot/Web应用程序,在原型设计过程中使用的是嵌入式HSQLDB。作为其中的一部分,我不想在两次运行之间保存数据。我希望系统中的唯一数据是来自这些脚本的数据

如何修改配置以实现这一点

@Configuration
public class RepoConfig {

    @Bean
    public DataSource dataSource() {
        EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
        EmbeddedDatabase db = builder.setType(EmbeddedDatabaseType.HSQL)
                .addScript("classpath:table.sql")
                .addScript("classpath:data.sql")
                .build()
            ;
        return db;
    }

    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource) {
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        return jdbcTemplate;
    }

}
我尝试在创建表之前添加一个脚本来删除表,如

删除表mytablename

但我一直在犯错误:

用户缺少权限或找不到对象:MYTABLENAME


附言:

  • 弹簧靴2.5.0
  • HSQLDB2.6.0

您可以通过以下配置执行此操作:

spring.jpa.hibernate.ddl-auto = create-drop
您可以在上找到更多详细信息

也可以设置此属性
spring.datasource.data

spring.datasource.data=drop.sql,data.sql
那么这些文件应该在

src/main/resources/drop.sql
src/main/resources/data.sql

好吧,但如果我不使用Hibernate?比如像原始JDBC或iBatisSure,您可以通过另一种方式来完成,让我来更新一下answer@Sled我更新了我的答案,我希望这对你有帮助。也许这对你有帮助?