gpt4 book ai didi

java - Spring Boot 基于目录的数据库

转载 作者:行者123 更新时间:2023-12-03 23:01:09 25 4
gpt4 key购买 nike

我想使用 spring-boot 的存储库功能连接到基于目录的 Derby 数据库。经过一番挣扎,我意识到我一直连接到的 derby DB 只是一个内存数据库。有没有办法让我指定数据库应该存储在文件系统而不是内存中?我希望我的数据库在我的 JVM 被终止后能够保留(并且能够被访问)。

我已尝试使用 application.properties 中的以下属性指定 Derby 连接 URL 以使用基于目录的数据库:

spring.datasource.url=jdbc:derby:directory;create=true

我的属性(property)确实被读取和使用,但数据库仍然没有在 JVM 启动和关闭之间保留数据。似乎在我的“derby.system.home”系统属性指定的位置创建了 Derby DB 目录结构,但是当我重新启动 JVM 时,它不包含旧 JVM 中存储的任何数据。

提前致谢!

最佳答案

我假设您正在使用 Hibernate。如果是这样,spring.jpa.hibernate.ddl-auto 的配置很重要。当您使用嵌入式数据库(例如 Derby)时,Boot 默认将其设置为 create-drop。当您关闭应用程序时,其中的删除部分将导致 Hibernate 删除所有数据库表。

您应该更改此配置以更好地满足您的需求。例如,使用 none 并使用 schema.sql 文件创建模式。

您可以找到有关 Boot 对数据库初始化的支持的更多信息 in the docs .

关于java - Spring Boot 基于目录的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26684419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com