java - 在 `$objectdb` 主目录之外以嵌入式服务器模式使用数据库

标签 java database objectdb

我正在尝试设置 ObjectDB。我能够创建一个数据库并使用资源管理器查看它,使用嵌入式服务器模式能够在运行我的程序时保持资源管理器打开。当我的数据库位于 $objectdb/db/目录中时,这一切都工作正常。

但是,当我的数据库位于另一个目录中(因此不在$objectdb/db/中)时,我希望能够执行此操作。当我不使用资源管理器时,数据库看起来很好。我还可以打开资源管理器来查看数据库。但是......在运行我的程序时(从而对数据库进行更改),我无法在资源管理器中保持与数据库的连接打开。

我尝试过/一直在思考:

  • 数据库和资源管理器必须使用相同的 .conf 文件。我认为资源管理器使用 $objectdb 主目录中的conf文件,但我不知道如何在其他目录中配置我的数据库来监听该conf文件。如何为不在 $objectdb 主目录中的数据库创建项目(或数据库)特定的 conf 文件?
    总的来说,我觉得很奇怪的是,所有的 ObjectDB 数据库都会有一个 conf 文件。

  • 我将 explorer.exeobjectdb.conf 复制到我的数据库所在的目录中,希望这能起作用。但是,当我尝试运行 exe 文件时,没有任何反应。我认为这是因为 exe(以及 explorer.jar,也尝试过)依赖于 objectdb.jar,但我在任何地方都找不到它。我找到了 objectdb-2.7.1_01.jar 并将其复制到数据库和资源管理器所在的目录中,但这没有帮助。

对于MWE,我关注了this教程,使用 IntelliJ。

最佳答案

尝试以下操作:

  1. 以嵌入式模式打开数据库,路径指定嵌入式服务器的可用端口,例如“$objectdb/db/my.odb;端口=9999”
  2. 使用“objectdb://localhost:9999”在客户端模式下访问此数据库,或者在资源管理器中选择"file"->“打开 C/S 连接”,指定 9999 作为端口并将数据库路径保留为空或/

当您将 ObjectDB 下载为 zip 文件(其中还可以找到 Explorer)时,objectdb.jar 就可用,您还可以从 Maven 重命名该文件,其中包含 objectdb.jar 的版本号。

关于java - 在 `$objectdb` 主目录之外以嵌入式服务器模式使用数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44384046/

相关文章:

MySQL主从复制 "Unknown database"错误

linux - su -session-command 错误

java - 使用 Maven surefire 插件来包含测试

java - Android BufferedReader 实例在最终尝试关闭时无法解析

mysql - 如何在 MARIADB/MYSQL 中为函数/过程声明表到变量?

java - 如何在 JavaDB Derby 数据库中存储 Java 对象?

jpa - JPA 中是否有隐式版本字段?

java - 对象数据库添加复合索引不起作用

java - ExceptionMappingAuthenticationFailureHandler 没有捕获我的异常

java - 将日期和时间合并到时间戳中