HsqlDB的安裝與使用

HSQLDB 安裝與使用

  HSQLDB是一個輕量級的純Java開發的開放源代碼的關係數據庫系統,其體積小,佔用空間小,使用簡單,支持內存運行方式等特點。可以在

http://sourceforge.net/projects/hsqldb/files/

下載最新的HSQLDB版本。我這裏下載的是 HSQLDB 2.2.7 版本。下載完之後,把它解壓到任一目錄下,如E:\hsqldb 下,完成安裝工作。

Hsqldb有四種運行模式

一、內存(Memory-Only)模式:所有的數據都將在內存中完成,如果程序退出,則相應的數據也將同時被銷燬。連接JDBC的實例爲:jdbc:hsqldb:mem:dbname

二、進行(In-Process)模式:此模式從應用程序啓動數據庫,由於所有的數據都將寫到文件中,所以,即使程序退出,數據也不會被銷燬。In-Process 不需要另外啓動,可以通過

DriverManager.getConnection("jdbcUriName","username","password");

方式即可啓動數據庫。連接 JDBC 的實例爲:

jdbc:hsqldb:file:/E:/hsqldb/data/dbname
jdbc:hsqldb:file:/opt/db/dbname
jdbc:hsqldb:file:dbname

三、服務器模式:此模式下 HSQLDB 跟其它數據庫服務器一樣,需要通過服務器的形式來進行啓動,可以通過

java -classpath ../lib/hsqldb.jar org.hsqldb.server.WebServer –database.0 testdb –dbname.0 testdbName

的命令啓動一個守護進程。連接 JDBC 的實例爲:

jdbc:hsqldb:hsql://localhost:port/dbname

四、Web服務器模式:此模式以WEB服務器的形式啓動,並通過HTTP協議接受客戶端命令。從1.7.2版本開始,Web服務器模式的HSQLDB開始支持事務處理。可以通過

java -classpath ../lib/hsqldb.jar org.hsqldb.WebServer –database.0 testdb –dbname.0 testdbname

的命令來啓動。

重點討論 hsqldb 服務器模式的啓動方法和連接和實際java程序的JDBC連接情況。假設JDK已經安裝到機器上,環境變量等都正確設置。

首先在 E:\hsqldbTest 目錄下建立兩個子目錄,data和lib目錄,data用來存放數據,lib用來管理jar包。將解壓之後的hsqldb中的lib目錄下的hsqldb.jar文件拷貝到 E:\hsqldbTest\lib 目錄下。

1.在hsqldbTest目錄下創建 runServer.bat 文件,其內容爲:

cd data
@java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server

2.保存 runServer.bat 文件,並雙擊運行該文件,此時回彈出命令行窗口,如下圖,表示已啓動HSQLDB數據庫。

此時,在data目錄下產生了三個文件,如:

test.lck ——標識數據庫鎖狀態。

test.log ——運行數據庫產生的log信息,它將記錄每一個運行和用戶操作環節。

test.properties——數據庫的配置信息,包括分配的內存大小等,可更具需要修改。

注:如果在命令行窗口中按下[Ctrl] + [C]組合鍵,數據庫將退出並關閉。

在做第三步時,千萬不能關閉 runServer.bat

3.再創建 runManager.bat 文件,用來啓動圖形界面管理工具,其內容爲:

cd ..\data
@java -classpath ..\lib\hsqldb.jar org.hsqldb.util.DatabaseManager

4.保存 runManager.bat 文件,並雙擊文件,此時回彈出圖形界面(注意,在進行這一不之前,必須確保第二步已執行),如下圖。

Recent:將會列出最近的數據庫配置

Setting Name: 設置名稱,這裏不需要填寫

Type:選擇服務器模式(HSQL Database Engine Server)

Driver:驅動名稱,不需要修改

URL:JDBC連接,無需修改

User:用戶名,根據需要設置

Password:密碼,根據需要設置

5.點擊【OK】按鈕,即可連接到 test 數據庫。如下圖所示。

此時,我們可以在窗口中創建表等操作,例如,我們創建一個TBL_USERS的表。在菜單欄中選擇 COMMAND -> CREATE TABLE 命令,此時在右下文本框中顯示創建表的命令,包括各式,支持的類型等。我們創建的TBL_USERS表結構如下圖所示:

複製代碼
CREATE TABLE TBL_USERS(
         ID INTEGER NOT NULL PRIMARY KEY,
         FIRST_NAME VARCHAR(20),
         LAST_NAME VARCHAR (30),
         LOGIN_DATE DATE
 )
複製代碼

6.點擊【Execute】按鈕,如果無語法錯誤,SQL語句將正常執行,此時,選擇菜單欄中的 View -> Refresh Tree 命令,左側欄中將顯示創建的TBL_USERS。如下圖所示。並且查看 test.log 文件,創建表的過程都將全部記錄。

7.另外還可以用 DatabaseManagerSwing 工具啓動圖形界面。創建 runManagerSwing.bat 文件,內容爲:

cd ..\data
@java -classpath ..\lib\hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

保存文件,雙擊該文件,將啓動 Swing 圖形界面,如下圖所示,具體的操作過程和 DatabaseManager 工具類似,不再重複。

以上就是啓動hsqldb數據庫和創建表的整個過程,其它的功能可以通過多次聯繫即可掌握。按照以上操作方式,hsqldb將自動產生一個test 的數據庫。但是有時候我們需要自己指定數據庫,數據庫訪問名,數據庫訪問端口等,該如何實現呢,很簡單。只要在相對根目錄下創建一個server.properties文件即可。

創建自己制定的數據庫:

1.首先在 E:\hsqldbTest 目錄下創建一個 server.properties 文件,文件內容爲(注:在實際文件中,刪除後面的註釋內容)

server.port = 9001           #指定端口號爲9001
server.database.0 = file:data/mydb  #將在data目錄下創建mydb數據庫
server.dbname.0 = mydb             #指定數據庫名,jdbc連接時就是用此名稱
server.silent = true

2.在 E:\hsqldbTest 目錄下創建 runServer2.bat 文件,文件內容爲

cd ..\data
@java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server -port 9001 -database.0 file:../data/mydb -dbname.0 mydb

3.雙擊運行 runServer2.bat 文件,將會在data目錄下創建mydb數據庫,並啓動數據庫。

4.雙擊運行已創建好的 runManagerSwing.bat 文件,打開圖形管理界面,並設置連接到mydb數據庫中,如下圖所示:

5.配置好選項,點擊 OK 按鈕,即可連接到mydb數據庫,在窗口中可以按照以前的步驟創建表,添加記錄等操作。

好了,以上就是整個 hsqldb 的安裝、啓動、創建表等的全過程,在這裏特別說明的是,hsqldb.2.2.7  是用JDK.1.5以上的版本的編譯的,所以,如果你使用的是低於 jdk1.5 的版本時,可能出現異常情況,不能正常使用。另外,即使你安裝的jdk版本是1.5以上的,可能還會出現異常,該如何辦呢,此時,確保你的hsqldb是在官方網站下載的,需要檢查你的java的環境變量,由於你的機器可能安裝有oracle,很有可能出現問題,此時只需將%JAVA_HOME%\bin 路徑放置在path路徑的最開頭,這樣,就不會出現異常情況了。

接下來,我們通過一個具體的java程序來連接建立好的mydb數據庫,並且在mydb數據庫中創建一個TBL_USERS的表。並插入一條記錄。

1. 在 E:\hsqldbTest 目錄下創建一個 HsqlDemo.java 文件,內容如下:

複製代碼
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import org.hsqldb.jdbcDriver;
public class HsqlDemo {
    public static void main(String[] args) {
        try {
            Class.forName("org.hsqldb.jdbcDriver");
            Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:9001/mydb", "sa", "");
            if (c != null) {
                System.out.println("Connected db success!");
                String sql = "CREATE TABLE TBL_USERS(ID INTEGER, NAME VARCHAR, BIRTHDAY DATE);";
                Statement st = c.createStatement();
                st.execute(sql);
                sql = "INSERT INTO TBL_USERS(ID, NAME, BIRTHDAY) VALUES ('1', 'ADMIN', SYSDATE);";
                st.executeUpdate(sql);
                if (st != null) {
                    st.close();
                }
                c.close();
            }
        } catch(Exception e) {
            System.out.println("ERROR:failed to load HSQLDB JDBC driver.");
            e.printStackTrace();
            return;
        }
    }   
}
複製代碼

2.在 E:\hsqldbTest 目錄下建立一個 runJava.bat 文件,用來運行 HsqlDemo.java  內容如下:

@echo off
set path = C:\Program Files\Java\jdk1.6.0_05\bin     #jdk的路徑
javac -classpath ../lib/hsqldb.jar HsqlDemo.java
java  -classpath ../lib/hsqldb.jar;./ HsqlDemo    # 注意./ 後面的空格,./[空格] HsqlDemo

3.確定 mydb 數據庫已經啓動,如果沒有,運行 runServer2.bat ,啓動數據庫。

4.運行 runJava.bat 文件,運行程序,如果無異常產生,說明已正確執行,此時,可以在mydb.log文件中看到創建的 TBL_USERS ,插入的記錄,當然,可以用圖形工具查看錶。

OK,以上就是所有的hsqldb啓動過程和連接jdbc的過程。假設我們需要創建/啓動一個名爲 mydb 的數據庫。 爲了操作方便等,我們在 c:/hsqldb 目錄下創建 mydb 目錄。

1,創建 runMydb.bat 文件,文件內容爲:

java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server -database mydb

java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server -database.0 mydb -dbname.0 mydb 

 
啓動 runMydb.bat 命令即可

2,創建 manageMydb.bat 文件,內容:

java -classpath ../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" ); 初始化hsqldbjdbc 驅動
3,通過 DriverManager.getConnection(hsqldb-url, user, password); 取得HSQLDB數據庫的連接

使用例:

複製代碼
        try {
            Class.forName("org.hsqldb.jdbcDriver");
        } catch (Exception e) {
            System.out.println("ERROR:failed to load jdbc driver");
            e.printStackTrace();
            return;
        }
        Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb");
複製代碼

其中,jdbc:hsqldb:hsql://localhost/xdb 需要替換爲合適的jdbc-url
有關JDBC-URL的詳細描述請參考HSQLDB的四種運行模式

在Hibernate裏使用HSQLDB
著名的ORM工具Hibernate也提供了對 HSQLDB 數據庫的支持。需要在Hibernage裏使用 HSQLDB,只需在hibernate.cfg.xml 里加入類似如下設置:

複製代碼
<hibernate-configuration>
    <session-factory>
        <property name="show_sql">true</property>
        <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>
        <mapping resource="Customer.hbm.xml" />
    </session-factory>
</hibernate-cofiguration>
複製代碼

其餘就跟其他數據庫的用法一樣了,這裏不再詳述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章