hengheng123456789

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks

          一、簡介:
          hsql數(shù)據(jù)庫是一款純Java編寫的免費(fèi)數(shù)據(jù)庫,許可是BSD-style的協(xié)議,如果你是使用Java編程的話,不凡考慮一下使用它,相對其他數(shù)據(jù)庫來說,其體積小,才563kb。僅一個(gè)hsqldb.jar文件就包括了數(shù)據(jù)庫引擎,數(shù)據(jù)庫驅(qū)動(dòng),還有其他用戶界面操作等內(nèi)容。在Java開源世界里,hsql是極為受歡迎的(就Java本身來說),JBoss應(yīng)用程序服務(wù)器默認(rèn)也提供了這個(gè)數(shù)據(jù)庫引擎。由于其體積小的原因,又是純Java設(shè)計(jì),又支持SQL99,SQL2003大部分的標(biāo)準(zhǔn),所以也是作為商業(yè)應(yīng)用程序展示的一種選擇。請到以下地址下載hsql: http://prdownloads.sourceforge.net/hsqldb/hsqldb_1_7_3_3.zip?download

          二、使用hsql數(shù)據(jù)庫:
          1、hsql數(shù)據(jù)庫引擎有幾種服務(wù)器模式:常用的Server模式、WebServer模式、Servlet模式、Standlone模式、Memory-Only數(shù)據(jù)庫。
          2、最為常用的Server模式:
          1)首先卻換到lib文件夾下,運(yùn)行java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdb
          執(zhí)行命令后,將會(huì)在db文件夾下創(chuàng)建一個(gè)數(shù)據(jù)庫mydb,別名(用于訪問數(shù)據(jù)庫)是xdb,如果存在mydb數(shù)據(jù)庫,將會(huì)打開它。
          org.hsqldb.Server ,這個(gè)類是數(shù)據(jù)庫的服務(wù)器,即起到啟動(dòng)和服務(wù)的作用,
          java -cp /opt/hsqldb/hsqldb.jar org.hsqldb.Server -database /tmp/bd -port 9001 -system_exit=true
          這個(gè)是網(wǎng)點(diǎn)上說的的一個(gè)命令,其實(shí)這個(gè)啟動(dòng)也不用那么的復(fù)雜,要加的參數(shù),一是類包,需要設(shè)置classpath,二就是運(yùn)行類名,-database /tmp/bd -port 9001 -system_exit=true 這都是運(yùn)行的時(shí)候進(jìn)行的連接和數(shù)據(jù)保存的路徑
          2)運(yùn)行數(shù)據(jù)庫界面操作工具:java -cp hsqldb.jar org.hsqldb.util.DatabaseManager
          在Type選項(xiàng)里選上相應(yīng)的服務(wù)器模式,這里選擇HSQL Database Engine Server模式;Driver不用修改;URL修改為jdbc:hsqldb:hsql://localhost/xdb (主要這里xdb就是上面我們設(shè)置的別名);user里設(shè)置用戶名,第一次登錄時(shí),設(shè)置的是管理員的用戶名,password設(shè)置密碼。然后點(diǎn)擊Ok。
          3)第一次運(yùn)行數(shù)據(jù)庫引擎,創(chuàng)建數(shù)據(jù)庫完畢。好了,你可以打開db文件夾,會(huì)發(fā)現(xiàn)里面多了幾個(gè)文件。
          mydb.properties文件:是關(guān)于數(shù)據(jù)庫的屬性文件。
          mydb.script:hsql主要保存的表(這里按hsql的說法是Memory表,就是最為常用的),里面的格式都是文本格式,可以用文本查看,里面的語句都是sql語句,熟悉sql語句的話,你也可以手動(dòng)修改它。每次運(yùn)行數(shù)據(jù)庫引擎的話都是從這里加載進(jìn)內(nèi)存的。
          mydb.lck表示數(shù)據(jù)庫處于打開狀態(tài)。
          其他的請參看hsqldb包里的手冊。

          3、WebServer模式和Server運(yùn)行模式基本一樣,只是支持了Http等協(xié)議,主要用于防火墻,默認(rèn)端口是9001。啟動(dòng)Server,java -cp hsqldb.jar org.hsqldb.WebServer ...剩余的和上面的一致。

          4、Servlet模式可以允許你通過Servlet容器來訪問數(shù)據(jù)庫,請查看hsqlServlet.java的源代碼,和WebServer類似。

          5、另一個(gè)值得思考的模式是Standalone模式:不能通過網(wǎng)絡(luò)來訪問數(shù)據(jù)庫,主要是在一個(gè)JVM中使用,那樣的話,訪問的速度會(huì)更加快。雖然文檔里面提到主要是用于開發(fā)時(shí)使用,但是我們可以假設(shè)一下,該方法不需要一個(gè)引擎類的東西,而類似于打開文件的方式,返回一個(gè)Connection對象:
          Connection c = DriverManager.getConnection("jdbc:hsqldb:file:mydb", "sa", "");
          將會(huì)在當(dāng)前目錄找到mydb數(shù)據(jù)庫相關(guān)文件,打開并返回一個(gè)Connection對象。該方式有點(diǎn)好處就是可以不使用引擎,在需要的時(shí)候操作數(shù)據(jù)。所以那些對數(shù)據(jù)庫不是特別有要求的,但又需要一個(gè)操作數(shù)據(jù)庫的方式的話,可以使用這種方法。對于那些不想額外在數(shù)據(jù)庫引擎花費(fèi)金錢的話,可以使用這種方法。但是不推薦使用該方法。記得Hibernate里SessionFactory可以使用openSession(Connecttion c)來獲得一個(gè)Session對象的,因此,在測試或者實(shí)際應(yīng)用的話都可以這樣使用。

          6、Memory-Only 數(shù)據(jù)庫:顧名思義,主要是內(nèi)存中使用,不用于保存數(shù)據(jù)。可以用于在內(nèi)存中交換數(shù)據(jù)。

          三、具體的鏈接與操作的話,和一般的JDBC操作一樣。而相應(yīng)的Server模式的話,連接地址主要你運(yùn)行數(shù)據(jù)庫界面操作工具時(shí),在URL一欄時(shí)默認(rèn)已經(jīng)設(shè)好了,自己實(shí)習(xí)一下,對比其中參數(shù)。

          posted on 2006-09-06 12:08 哼哼 閱讀(1636) 評(píng)論(0)  編輯  收藏 所屬分類: HSQL

          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 临夏县| 习水县| 庄河市| 滁州市| 新丰县| 广平县| 紫金县| 民丰县| 临江市| 文安县| 霞浦县| 临朐县| 廉江市| 钟山县| 丹江口市| 常德市| 秭归县| 广州市| 日照市| 保山市| 寿光市| 张家口市| 英超| 读书| 西和县| 嵊州市| 鄂尔多斯市| 常宁市| 云和县| 阳朔县| 阜阳市| 江安县| 景谷| 叙永县| 台北县| 安图县| 上犹县| 贞丰县| 达尔| 张家川| 阳城县|