Hsqldb安裝與使用

selayou 14年前發布 | 970 次閱讀 網頁導航

HSQLDB是一個輕量級的純Java開發的開放源代碼的關系數據庫系統,其體積小,占用空間小,使用簡單,支持內存運行方式等特點。可以在http://sourceforge.net/projects/hsqldb/files/下載最新的HSQLDB版本。我這里下載的是HSQLDB 1.8.13版本。下載完之后,把它解壓到任一目錄下,如E:\hsqldb下,完成安裝工作。

Hsqldb有四種運行模式:

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

二、              進行(In-Process)模式:此模式從應用程序啟動數據庫,由于所有的數據都將寫到文件中,所以,即使程序退出,數據也不會被銷毀。In-Process不需要另外啟動,可以通過DriverManager.getConnection(jdbcUriName,”sa”,””);方式即可啟動數據庫。連接JDBC的實例為:

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

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

jdbc:hsqldb:file:dbname

三、              服務器模式:此模式下HSQLDB跟其它數據庫服務器一樣,需要通過服務器的形式來進行啟動,可以通過java –cp ../lib/hsqldb.jar org.hsqldb.Server –database.0 testdb –dbname.0 testdbName的命令啟動一個守護進程。連接JDBC的實例為:jdbc:hsqldb:hsql://localhost:<port>/dbname

四、              Web服務器模式:此模式以WEB服務器的形式啟動,并通過HTTP協議接受客戶端命令。從1.7.2版本開始,Web服務器模式的HSQLDB開始支持事務處理。可以通過java –cp ../lib/hsqldb.jar org.hsqldb.WebServer –database.0 testdb –dbname.0 testdbname的命令來啟動。

 

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

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

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

cd data

@java -classpath ../lib/hsqldb.jar org.hsqldb.Server

 

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

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

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

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

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

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

 

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:驅動名稱,不需要修改

URLJDBC連接,無需修改

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

Password:密碼,根據需要設置

 

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

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

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.=mydb           #指定數據庫名,jdbc連接時就是用此名稱

server.silent=true

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

@java -classpath lib/hsqldb.jar org.hsqldb.Server

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

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

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

 

 

好了,以上就是整個hsqldb的安裝、啟動、創建表等的全過程,在這里特別說明的是,hsqldb.1.8.1.3是用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=D:\Program Files\Java\jdk1.6.0_05\bin     # jdk的路徑

javac -classpath lib/hsqldb.jar HsqlDemo.java

java -cp lib/hsqldb.jar;./ HsqlDemo               # 注意./ 后面的空格,./[空格] HsqlDemo

 

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

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

 

 

OK,以上就是所有的hsqldb啟動過程和連接jdbc的過程。

 本文由用戶 selayou 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!