spring-boot - 文件系统中的spring-boot Persistent h2database

标签 spring-boot h2

我该如何使用h2database配置spring-boot,以便每次重新启动时都能重用数据库。

这是我的application.properties文件中仅有的一行

spring.jpa.database-platform = org.hibernate.dialect.H2Dialect

最佳答案

您必须为spring.datasource.url指定一个值,该值指定一个文件系统DB。您可以使用jdbc:h2:file:前缀来实现。
例如,您可以使用此配置将数据库存储在mydb.mv.db目录的db文件夹中的home文件中:

spring.datasource.url = jdbc:h2:file:~/db/mydb

请注意,不需要spring.jpa.database-platform=org.hibernate.dialect.H2Dialect。运行时位于类路径中的url和H2 JDBC驱动程序就足够了。

还请注意,默认情况下,如果您使用嵌入式数据库(H2,HSQL或Derby),则会在启动时自动创建数据库。

即使您在JDBC URL中将文件指定为数据库也是如此。

因此,为了避免在每次Spring Boot启动时重新创建数据库,您还应该添加:
spring.jpa.hibernate.ddl-auto = update

或者
spring.jpa.hibernate.ddl-auto = validate

关于spring-boot - 文件系统中的spring-boot Persistent h2database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47913010/

相关文章:

java - Spring REST 文档测试中未使用自定义 Jackson 模块

spring - Swagger 从属性文件中读取文档

h2 - 使用Datagrip客户端连接到H2数据库

java - 在 Hsqldb/H2 中进行单元测试的 SequenceGenerator 问题

java - 在自定义 validator Spring Rest 中返回 HTTP 代码

spring - thymeleaf 和 spring-boot 以形式丢失的复杂对象

java - 获取证书异常 : "No name matching localhost found" in Playframework java application

java - 以编程方式启动 H2 数据库

用于 Sql 插入的 Java 日期

java - 考虑在配置中定义一个名为 'entityManagerFactory' 的 bean - Spring boot