我掌握了創建HSQLDB服務器編程時使用org.hsqldb.server.Server
類是有用的。如何使用org.hsqldb.jdbc.JDBCConnection類HSQLDB API
我總是使用java SDK類(java.sql.Connection
)連接到服務器,我覺得它足以連接服務器是基於內存還是基於文件。
爲什麼我們需要org.hsqldb.jdbc.JDBCConnection
類HSQLDB API的?
我掌握了創建HSQLDB服務器編程時使用org.hsqldb.server.Server
類是有用的。如何使用org.hsqldb.jdbc.JDBCConnection類HSQLDB API
我總是使用java SDK類(java.sql.Connection
)連接到服務器,我覺得它足以連接服務器是基於內存還是基於文件。
爲什麼我們需要org.hsqldb.jdbc.JDBCConnection
類HSQLDB API的?
沒有'class'java.sql.Connection
:它是一個接口。 JDBC是一個由接口(和一些支持類)組成的API。這些接口需要由每個JDBC驅動程序實現,以便能夠執行任何操作。
當您使用HSQLDB,你使用它的實施java.sql.Connection
稱爲org.hsqldb.jdbc.JDBCConnection
;這包含了HSQLDB如何工作的細節(JDBC本身並不知道的東西)。但是通常你只需要通過JDBC中定義的接口訪問它;這對於便攜性來說甚至更好。
因此,簡而言之,如果它不是org.hsqldb.jdbc.JDBCConnection
,您甚至不能連接到HSQLDB。
**實現與界面... **非常感謝! – Bll
我還沒有HSQLDB很多,但API文檔的工作似乎是你的問題的最佳來源。
的Class JDBCConnection文檔說 -
JDBC 4.0注:
與JDBC 4.0(JDK 1.6),在DriverManager的方法 的getConnection和getDrivers已得到增強,支持Java 標準版服務開始提供者機制。當在支持JDBC 4.0在Java運行時 建,含 驅動程序實現HSQLDB分配罐還包括文件 META-INF /服務/ java.sql.Driver中。該文件包含了HSQLDB 實現java.sql.Driver中的完全 限定類名(「org.hsqldb.jdbc.JDBCDriver」)。
因此,在JDBC 4.0或更高版本下,應用程序不再需要使用Class.forName()顯式地加載HSQLDB JDBC驅動程序 。在 當然,使用 Class.forName()加載JDBC驅動程序的現有程序將繼續工作而不做任何修改。
所以我想你可以用標準化的代碼繼續。
該類可能有一些特定於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
即您在追加鍵值對之前添加分號並且不添加最後一個鍵值對的分號。
感謝AmitK編輯問題! – Bll
感謝Mrak編輯我的問題! – Bll