Spring-Boot / H2将数据库快照写入文件系统

时间:2017-02-08 13:13:01

标签: java spring spring-boot spring-data-jpa h2

我正在使用正在使用数据库的Spring-Boot-Application。 我想让用户选择使用嵌入式数据库(用于快速测试)或基于硬盘驱动器的数据库(用于长期使用)。 我的方法是在application.properties中添加一个bool标志,在配置中读取它并创建想要的DataSource。

@Bean
public DataSource dataSource() {    
    if (embedded) {
        EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
        EmbeddedDatabase db = builder
                .setType(EmbeddedDatabaseType.H2)
                .addScript("db.sql")
                .build();
        return db;
    } else {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(databaseURL);
        dataSource.setUsername(databaseUser);
        dataSource.setPassword(databasePassword);
        return dataSource;
    }
}   

这很好用。我现在的问题是我希望在会话之间保持嵌入式数据库,并在应用程序重新启动时再次加载其内容(如果用户之前使用过嵌入式数据库,并且再次使用它,那么他不会丢失他的数据)< / p>

我需要在代码中添加什么才能让数据库创建快照并在启动时再次使用它们?

Greetz,谢谢你的帮助, 帕特里克

1 个答案:

答案 0 :(得分:1)

您可以通过connection URL配置它。