HSQLDB是一個(gè)開源的純Java嵌入式關(guān)系數(shù)據(jù)庫管理系統(tǒng),小巧方便,具有標(biāo)準(zhǔn)的SQL語法和Java接口,可以作為內(nèi)存數(shù)據(jù)庫、獨(dú)立數(shù)據(jù)庫和C/S數(shù)據(jù)庫,支持索引、事務(wù)處理、Java存儲(chǔ)過程、完整性引用和約束等功能。
本章介紹Eclipse環(huán)境下的HSQLDB數(shù)據(jù)庫應(yīng)用開發(fā),包括HSQLDB數(shù)據(jù)庫的安裝和配置、SqlExplorer數(shù)據(jù)庫插件的安裝和配置、常見數(shù)據(jù)庫操作的封裝,最后通過學(xué)生成績管理系統(tǒng)介紹了基于HSQLDB進(jìn)行數(shù)據(jù)庫應(yīng)用開發(fā)的具體步驟。
1 HSQLDB數(shù)據(jù)庫的使用
1.1 下載并安裝HSQLDB數(shù)據(jù)庫
在使用HSQLDB數(shù)據(jù)庫之前,本小節(jié)首先介紹HSQLDB數(shù)據(jù)庫的下載和安裝。與大多數(shù)Java應(yīng)用程序一樣,只需解壓縮安裝包即可完成HSQLDB數(shù)據(jù)庫的安裝。
跟我做
(1)登錄HSQLDB的官方網(wǎng)站http://www.,下載HSQLDB數(shù)據(jù)庫的安裝包hsqldb_1_8_0_x.zip。
(2)將下載的安裝包解壓縮到設(shè)定的安裝目錄,如d:\hsqldb。
(3)將D:\hsqldb\lib目錄下的hsqldb.jar文件加入到CLASSPATH環(huán)境變量中,HSQLDB安裝完畢。安裝后其目錄結(jié)構(gòu)如圖1所示。
圖1 HSQLDB數(shù)據(jù)庫的目錄結(jié)構(gòu)
注意:設(shè)置CLASSPATH環(huán)境變量,所有的HSQLDB組件如數(shù)據(jù)庫引擎、服務(wù)器進(jìn)程、JDBC驅(qū)動(dòng)程序、文檔以及一些實(shí)用工具都放在hsqldb.jar文件中。
1.2 使用Memory模式運(yùn)行HSQLDB
下面介紹HSQLDB的幾種運(yùn)行模式。
● 獨(dú)立服務(wù)器模式:類似于其他關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)客戶機(jī)/服務(wù)器數(shù)據(jù)庫配置,允許出現(xiàn)使用TCP 套接字的并發(fā)連接。
● 獨(dú)立Web服務(wù)器模式:作為Web服務(wù)器通過HTTP接受SQL查詢,也能作為任何標(biāo)準(zhǔn)Web容器中的Servlet來運(yùn)行。由于HTTP是無狀態(tài)的,所以本模式中不存在事務(wù)。
● 單機(jī)模式:是許多嵌入式應(yīng)用程序的首選模式,該模式下應(yīng)用程序使用JDBC創(chuàng)建一個(gè)數(shù)據(jù)庫連接,HSQLDB引擎也運(yùn)行在該應(yīng)用程序中。
● Memory模式:所有數(shù)據(jù)庫表和索引都放在內(nèi)存中,數(shù)據(jù)不進(jìn)行外存儲(chǔ),沒有持久性。
本小節(jié)將以Memory模式為例,介紹如何基于HSQLDB數(shù)據(jù)庫進(jìn)行應(yīng)用的開發(fā)。
跟我做
(1)啟動(dòng)Eclipse,創(chuàng)建名字為hsqldbdemo的Java工程,并創(chuàng)建Java類MemoryDB.java。
注意:切記將hsqldb.jar加到工程的構(gòu)建路徑上。
(2)編輯MemoryDB.java文件。輸入如下代碼:
try {
//加載HSQLDB數(shù)據(jù)庫JDBC驅(qū)動(dòng)
Class.forName("org.hsqldb.jdbcDriver");
//在內(nèi)存中建立臨時(shí)數(shù)據(jù)庫score,用戶名為sa,密碼為空
Connection connect = DriverManager.getConnection("jdbc:hsqldb:mem:score", "sa", "");
System.out.println(“在此行上設(shè)置一個(gè)斷點(diǎn)”);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
在內(nèi)存中建立臨時(shí)數(shù)據(jù)庫“score”,用戶名為“sa”,密碼為空。上述程序片斷是典型的通過JDBC連接數(shù)據(jù)庫的方法,其中數(shù)據(jù)庫URL“jdbc:hsqldb:mem:score”中的“mem”部分定義了HSQLDB數(shù)據(jù)庫工作在Memory模式下。一旦跟數(shù)據(jù)庫的連接建立后,數(shù)據(jù)庫引擎就啟動(dòng)起來了,接下來即可創(chuàng)建Table表。