HSQLDB是一個輕量級的純Java開發的開放源代碼的關係數據庫系統。由於HSQLDB的輕量(佔用空間小),使用簡單,支持內存運行方式等特色,HSQLDB被普遍用於開發環境和某些中小型系統中。
HSQLDB的運行須要Java環境的支持。html
運行模式 | 說明 | 啓動命令 | JDBC例 |
內存java (Memory-Only)sql 模式數據庫 |
全部數據都在內存裏操做。應用程序退出後則數據被銷燬。 | 啓動方式1:經過程序中首次調用服務器 Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:myDbName", session "sa", "");時工具 啓動方式2:你也能夠在server.properties中指定相同的URL來運行一個Memory-Only(僅處於內存中)服務器實例。url |
jdbc:hsqldb:mem:myDbName |
進程spa (In-Process).net 模式 |
從應用程序啓動數據庫。由於全部數據被寫入到文件中,因此即便應用程序退出後,數據也不會被銷燬。 | 跟Memory-Only模式同樣, In-Process不須要另外啓動,經過DriverManager.getConnection(jdbcUriName, "sa", "");方式既可啓動 |
jdbc:hsqldb: file:/C:/mydb/myDbNamejdbc:hsqldb: file:/opt/db/myDbNamejdbc:hsqldb: file:myDbName |
服務器模式 | 該模式下HSQLDB跟其餘數據庫服務器同樣,以服務器的形式被啓動。 | 經過 java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 myDbName 之類的命令啓動HSQLDB守護進程。 |
jdbc:hsqldb:hsql:// localhost:9001/myDbName |
Web服務器模式 | 該模式HSQLDB以WEB服務器的形式啓動,並經過HTTP協議接受客戶端命令。 | 從1.7.2開始,WEB服務器模式的HSQLDB開始支持事務。 | java -cp ../lib/hsqldb.jar org.hsqldb.WebServer -database.0 mydb -dbname.0 myDbName |
HSQLDB的下載與安裝:
HSQLDB的最新版本能夠經過http://sourceforge.net/projects/hsqldb/下載。本文執筆階段HSQLDB的最新穩定版本是:1.8.0.7。
下文以Windows環境爲例,介紹怎麼樣安裝HSQLDB。Linux環境除了目錄與命令不同以外,其他基本同樣。
下載完成以後,把下載的ZIP文件解壓縮至任意目錄例如c:/hsqldb便完成安裝。
HSQLDB服務器模式的啓動方法
由於In-Process模式以及Memory-Only模式能夠無需另外啓動HSQLDB,下面介紹服務器模式的啓動方法。
假設咱們須要建立/啓動一個名爲mydb的數據庫。
爲了操做方便等,咱們在c:/hsqldb目錄下建立mydb目錄。
1,建立runMydb.bat文件,文件內容爲:
java -cp ../lib/hsqldb.jar org.hsqldb.Server -database mydb
或
java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb
啓動runMydb.bat命令便可
2,建立manageMydb.bat文件,內容:
java -cp ../lib/hsqldb.jar org.hsqldb.util.DatabaseManager -url jdbc:hsqldb:hsql://localhost/mydb
啓動manageMydb.bat,便可啓動HSQLDB的圖形界面管理工具
Hsqldb 的主要工具類:
org.hsqldb.util.DatabaseManager
org.hsqldb.util.DatabaseManagerSwing
org.hsqldb.util.Transfer
org.hsqldb.util.QueryTool
org.hsqldb.util.SqlTool
使用JDBC鏈接HSQLDB數據庫
Java語言經過JDBC使用HSQLDB數據庫很是簡單:
1,將hsqldb.jar加入到classpath
2,經過Class.forName("org.hsqldb.jdbcDriver" );初始化hsqldb的jdbc驅動
3,經過DriverManager.getConnection(hsqldb-url, user, password);取得HSQLDB數據庫的鏈接
使用例:
try { Class.forName("org.hsqldb.jdbcDriver" ); } catch (Exception e) { System.out.println("ERROR: failed to load HSQLDB JDBC driver."); e.printStackTrace(); return; } Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb", "sa", "");
<hibernate-configuration> <session-factory> <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> <property name="connection.url">jdbc:hsqldb:hsql://localhost/mydb</property> <property name="connection.username">sa</property> <property name="connection.password"></property> <property name="dialect">org.hibernate.dialect.HSQLDialect</property> </session-factory> </hibernate-configuration>其他就跟其餘數據庫的用法同樣了,這裏再也不詳述。