如何在应用程序外部连接/查询 HSQL 数据库?

Posted

技术标签:

【中文标题】如何在应用程序外部连接/查询 HSQL 数据库?【英文标题】:How to connect/query HSQL database outside application? 【发布时间】:2016-06-13 08:46:43 【问题描述】:

我使用嵌入式 HSQL 作为我的 Java 应用程序的数据库。并通过 Hibernate 连接到数据库,下面是 hibernate.cfg.xml 文件条目,

<property name="hibernate.connection.url">jdbc:hsqldb:file:testdb;shutdown=true</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>

我可以通过我的 java 应用程序连接到数据库,hibernate 会自动创建表,还会将数据插入表中,因为当我通过应用程序查询表时,我可以在我的应用程序中看到它。

但是当我尝试通过 SQL Workbench 访问我的数据库时,它没有显示任何表。它确实与以下属性有关,

Driver - org.hsqldb.jdbcDriver  
URL - jdbc:hsqldb:file:testdb
UserName - sa
Password - 

连接后显示如下架构,

*、INFORMATION_SCHEMA、PUBLIC、SYSTEM_LOBS

但是当我为其中一个表触发选择查询时,它会显示错误,

用户缺少权限或找不到对象:table_name [SQL State=42501, DB Errorcode=-5501]

那么我需要做任何特定的配置来连接我的嵌入式数据库吗?

【问题讨论】:

【参考方案1】:

我在 URL 中提供了错误的信息,要连接到基于文件的 HSQL 数据库,如果您在 Windows 上,您必须提供如下 URL,

jdbc:hsqldb:file:C:\Softwares\eclipse-jee-mars-1-win32\eclipse\testdb

需要提及数据库文件的完整路径。它现在对我来说工作正常。 同样对于进程内文件模式,只能进行一个连接。下面的链接帮助我解决了这个问题,HSQL jdbcConnection class Documentation

【讨论】:

以上是关于如何在应用程序外部连接/查询 HSQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 hsql 中编写 postgresql 查询

如何在 WAR 文件中包含 Hsql 数据库?

如何从 .NET 应用程序访问 HSQL DB?

在 HSQL 左外连接子句中使用 SUBSTR

如何从 HSQL 中检索行范围内的数据?

如何将 HSQL DB Manager 连接到嵌入式数据库