我在创建内存表、使用 H2 数据库以及在创建和运行该表的 JVM 之外访问它时遇到问题。
该文档将 url 构造为jdbc:h2:tcp://<host>/mem:<databasename>
我尝试了多种组合,但根本无法使远程连接正常工作。此功能是否有效,任何人都可以告诉我他们如何使用此功能的详细信息。
到目前为止提到的解决方案都不适合我。远程部分无法连接。
根据H2的官方文档 http://www.h2database.com/html/features.html#in_memory_databases:
要从另一个进程或另一台计算机访问内存数据库,您需要在创建内存数据库的同一进程中启动 TCP 服务器。然后,其他进程需要通过 TCP/IP 或 TLS 访问数据库,使用数据库 URL,例如:jdbc:h2:tcp://localhost/mem:db1。
我用粗体标记了文本的关键部分。
我在这个人那里找到了一个可行的解决方案blog https://jsoftbiz.wordpress.com/2011/04/30/share-an-h2-in-memory-database-among-several-jvms/:
第一个进程将使用以下 URL 创建数据库:
jdbc:h2:mem:db1
并且需要启动一个 tcp 服务器:
org.h2.tools.Server server = org.h2.tools.Server.createTcpServer().start();
然后其他进程可以使用以下 URL 访问您的数据库:
"jdbc:h2:tcp://localhost/mem:db1"
就是这样!效果非常好!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)