如何使用 HSQLDB API 的 org.hsqldb.jdbc.JDBCConnection 类

Posted

技术标签:

【中文标题】如何使用 HSQLDB API 的 org.hsqldb.jdbc.JDBCConnection 类【英文标题】:How to use org.hsqldb.jdbc.JDBCConnection class of HSQLDB API 【发布时间】:2017-05-04 02:49:40 【问题描述】:

我知道在以编程方式创建 hsqldb 服务器时使用org.hsqldb.server.Server 类很有用。

我一直使用java SDK类(java.sql.Connection)连接服务器,感觉无论服务器是内存还是文件都连接就够了。

为什么我们需要org.hsqldb.jdbc.JDBCConnection 类的hsqldb API?

【问题讨论】:

感谢 AmitK 编辑问题!! 感谢 Mrak 编辑我的问题!! 【参考方案1】:

没有“类”java.sql.Connection:它是一个接口。 JDBC 是一个由接口(和一些支持类)组成的 API。这些接口需要由每个 JDBC 驱动程序实现才能真正能够做任何事情。

当你使用 HSQLDB 时,你使用它的 java.sql.Connection 实现,称为 org.hsqldb.jdbc.JDBCConnection;这包含 HSQLDB 如何工作的细节(JDBC 本身不知道的)。但是通常只需要通过JDBC中定义的接口来访问即可;这对于便携性来说更可取。

简而言之,如果不是org.hsqldb.jdbc.JDBCConnection,你甚至无法连接到 HSQLDB。

【讨论】:

实现与界面...非常感谢!!【参考方案2】:

我与 HSQLDB 的合作不多,但 API 文档似乎是您问题的最佳来源。

Class JDBCConnection 的文档说 -

JDBC 4.0 注释:

从 JDBC 4.0 (JDK 1.6) 开始,DriverManager 方法 getConnection 和 getDrivers 已得到增强以支持 Java 标准版服务提供者机制。在 Java 下构建时 支持 JDBC 4.0 的运行时,HS​​QLDB 分发 jars 包含 驱动程序实现还包括该文件 META-INF/services/java.sql.Driver。该文件包含完整的 HSQLDB 的限定类名('org.hsqldb.jdbc.JDBCDriver') java.sql.Driver的实现。

因此,在 JDBC 4.0 或更高版本下,应用程序不再需要 使用 Class.forName() 显式加载 HSQLDB JDBC 驱动程序。的 当然,加载 JDBC 驱动程序的现有程序使用 Class.forName() 将继续工作而无需修改。

所以我想你可以继续使用标准化代码。

这个类可能有一些特定于 HSQLDB 的附加方法。

此外,如果计划使用这些特定方法,则必须进行类型转换,

JDBCConnection connection =
            (JDBCConnection) DriverManager.getConnection(url, connProperties);

关于您的其他问题,模式是 -<url>[;key=value]*,即您在 url 后放置一个分号,然后指定键值 - key=value 格式。每个key=value 需要用分号隔开。

例如jdbc:hsqldb:hsql://localhost/cities;user=bill;password=password 即在附加键值对之前添加分号,最后一个键值对没有分号。

【讨论】:

谢谢萨比尔,。它有很大帮助。如果您不介意,还有一个问题。在 API 的同一页面上,末尾有 HSQLDB-Specific Information。它说:从 1.7.2 开始,连接属性 () 可以附加到数据库连接 ,使用形式:'[;key=value]*' 你能解释一下吗?一点点或显示一个简单的例子?我很难理解这一点。 @Bll 你真的应该问这个问题。 谢谢马克,我将为此 API 部分创建一个新问题。

以上是关于如何使用 HSQLDB API 的 org.hsqldb.jdbc.JDBCConnection 类的主要内容,如果未能解决你的问题,请参考以下文章

如何在 hsqldb 数据库中存储文本和二进制文件?

使用 hsqldb 的情况?如何?

如何将 HSQLDB 与 Ruby on Rails 一起使用。

HSQLDB如何手动插入记录

如何使用 JDBC 工具访问 hsqldb 数据库?

如何使用注解在 Spring JPA 中定义 HSQLDB 属性