如何使用 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 的运行时,HSQLDB 分发 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 开始,连接属性 (以上是关于如何使用 HSQLDB API 的 org.hsqldb.jdbc.JDBCConnection 类的主要内容,如果未能解决你的问题,请参考以下文章