我在 Spring 启动项目中在内存中使用 hsqldb。这是我的应用程序示例。
spring.datasource.url=jdbc:hsqldb:mem
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver
当我启动我的应用程序时,它会在我的项目主目录中创建几个文件,如mem.script,mem.log。
mem.log 拥有它在数据库上执行的所有 SQL 语句。每当从我的存储库类触发某些操作时,它就会更新。整个功能正在工作,我什至可以从这个 hsqldb 查询并且它可以工作。
但是出于某些调试目的,我想通过某些数据库客户端(DBVisualizer)连接到此数据库。当我尝试使用此 mem.log 文件连接(数据库类型:HSQLDB 嵌入式)时,我已成功连接,但在那里看不到我的任何表。
我什至尝试在我的应用程序中设置服务器,如这里所述,
如何从 Spring 启动应用程序以服务器模式启动 HSQLDB
即使在这种情况下,我也可以从DBVisualizer(数据库类型:HSQLDB服务器)连接,但看不到任何表。
如果我错过了什么,请告诉我。
谢谢
首先,您使用的 url 与没有文件的全内存数据库 (jdbc:hsqldb:mem:anyname) 太相似,但它不是内存中的 URL。
按照您链接到的问题中的服务器模式说明进行操作。如果看不到表,请报告您的配置版本。请注意我在下面引用的配置参数:
<prop key="server.database.0">mem:testdb</prop>
<prop key="server.dbname.0">testdb</prop><!--DB name for network connection-->
并从 DBVisualiser 连接此 URL
jdbc:hsqldb:hsql://localhost/testdb