java學習之HSQLDB文檔_第1頁
java學習之HSQLDB文檔_第2頁
java學習之HSQLDB文檔_第3頁
java學習之HSQLDB文檔_第4頁
java學習之HSQLDB文檔_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Java 學習:HSQLDBfc 檔2007年12月18日 星期二17:03Java 學習:HSQLDBfc 檔近來研究HSQLD,就嘗試翻譯了一下它的文檔,這里貼出來和大家共享,歡迎 大家和我交流:wwccff163. net一什么是HSQLD ?HSQLD呢有以下特點:是一個開放源代碼的JAVA數(shù)據(jù)庫具有標準的SQL語法和JAVA接口HSQLD H勺以自由使用和分發(fā)非常簡潔和快速的具有內(nèi)存數(shù)據(jù)庫,獨立數(shù)據(jù)庫和C/S數(shù)據(jù)庫三種方式可是在APPLE中使用更多的細節(jié):索引可以被創(chuàng)建和自動使用支持事務(wù)處理允許表關(guān)聯(lián)完整性引用和約束支持JAVA存儲過程和函數(shù)數(shù)據(jù)庫可以生成. SQLW本使用用戶名,密

2、碼,訪問權(quán)限等安全機制可以被JAVA1.1和JAVA2編譯建立在HypersonicSQL基礎(chǔ)上的HSQLD,是一個通用目的的數(shù)據(jù)庫,非常的小,而且易于安裝和使用??梢杂糜贏PPLET防,測試中,應(yīng)用系統(tǒng)中。由于提供了標準SQL和JDBC接口,HSQLD可以方便的和其他數(shù)據(jù)庫之間進行數(shù) 據(jù)轉(zhuǎn)換。HSQLDB勺當前最新版本是1.7.1,以壓縮包的形式提供,包括可以使用的JAR文 件,文檔,源代碼,測試程序,例子等。二操作模式介紹HSQLDBt兩種操作模式:進程內(nèi)模式(只用在同一個JVM里的應(yīng)用程序才可以訪問數(shù)據(jù)庫)C/S模式(多個計算機/系統(tǒng)可以訪問同一個數(shù)據(jù)庫)進程內(nèi)訪問模式進程內(nèi)訪問模式也就

3、是獨立模式。這里的獨立模式是相對于C/S模式 (客戶端程序訪問數(shù)據(jù)庫服務(wù)器)而言的。這里,數(shù)據(jù)庫和應(yīng)用程序運行在同一個JVM下。這個時候的數(shù)據(jù)庫實際上就是相當于 被應(yīng)用程序調(diào)用的代碼庫。程序和數(shù)據(jù)庫通過通用的JDBC調(diào)用進行通訊,但是這種調(diào)用是內(nèi)部調(diào)用,不 需要通過網(wǎng)絡(luò)通訊。在這個模式下,同一時間一個數(shù)據(jù)庫只能有一個應(yīng)用程序訪問,否則,就要使用C/S 模式(允許多個JVM或者計算機在同一時間訪問同一個數(shù)據(jù)庫)。這種模式下的JDBC的URL如下:jdbc:hsqldb:test這里Test是數(shù)據(jù)庫文件名。另一個例子(WINDOWS統(tǒng)下):jdbc:hsqldb:c:dbtestC/S訪問模式這種

4、模式下數(shù)據(jù)庫和應(yīng)用程序不是運行在同一個JVM進程下,而是有自己獨立的進程或者是獨立的機器。不需要客戶端程序進入服務(wù)器的文件系統(tǒng)。這種模式下的數(shù)據(jù)庫操作模式和一些大的 數(shù)據(jù)庫(比物SQL SERVERQRACLS沒什么區(qū)別的??梢栽贗NTERNE或者INTRANETHSQLD食余了有自己的訪問協(xié)議,還支持標準的HTTP協(xié)議,從而可以穿越防火墻或者代理服務(wù)器來訪問數(shù)據(jù)庫。In all Server modes the actual database file name is specified in the Java commandthat starts the server. This can

5、be the dot for all-in-memory operation or the path forthe database name服務(wù)器模式一共有三種:SERVER,WEBSERVERERVLETSERVER這種模式下的通訊協(xié)議是建立在TCP/IP基礎(chǔ)上的HSQL專有協(xié)議。每個客戶端都有 一個獨立的連接。這種模式的響應(yīng)速度是非??斓?,如果使用C/S模式,應(yīng)該更多的采用這種服務(wù)模式。這種模式下的JDBC URL是:jdbc:hsqldb:hsql:/hsqldbsrv這里,hsqldbsrv是機器名稱。如果一臺機器上跑多個服務(wù)器,需要指定端口,例 如:jdbc:hsqldb:hsql

6、:/hsqldbsrv:9002,如果是本地計算機,則使用 localhostjdbc:hsqldb:hsql:/localhost。WEBSERVER有些時候,由于防火墻或者代理服務(wù)器的存在,需要使用HTTP協(xié)議進行通訊,系統(tǒng)提供一個小而簡單的WEBSERVER來相應(yīng)針對數(shù)據(jù)庫的查詢,例如:jdbc:hsqldb :http:/websrvSERVLET這種i模式和WEBSERVER式很類似,數(shù)據(jù)庫運行在一個SERVLET!,而SERVLE 可以運行在幾乎所有的WEBSERVER而且和JAVA SERVLETE Ap兼容(測試環(huán)境是J2DK2.1)。這 是通過 網(wǎng)絡(luò)直接訪問的。如果你的SER

7、VLET不能直接訪問這個數(shù)據(jù)庫,就不要使用這種模式。全內(nèi)存訪問(All-In- Memory )模式所謂全內(nèi)存訪問模式,就是所有的數(shù)據(jù)(包括索引和記錄)都保存在主內(nèi)存里。這意味 著數(shù)據(jù)庫的大小是受到內(nèi)存大小的限制的(不能超過內(nèi)存的大?。VС诌@種模式的原因是:在非日志模式下,這種模式稍微快些可以在APPLETS使用用來存儲臨時數(shù)據(jù)(應(yīng)用系統(tǒng)的數(shù)據(jù)緩存)AIMn-MemoryJDBC URL 如下:jdbc:hsqldb:.內(nèi)存和硬盤結(jié)合訪問模式在這種模式下,數(shù)據(jù)庫的改變會寫入到硬盤中,這就意味著在數(shù)據(jù)庫啟動時,內(nèi)存里的 表會根據(jù)他們的數(shù)據(jù)重新創(chuàng)建?;蛘哒f,可以創(chuàng)建表來保存數(shù)據(jù),在訪問數(shù)據(jù)庫時,

8、只有少量記錄時保 存在內(nèi)存里的??梢栽趥}U建的時候使用CREATE CACHED TABL來代替CREATE TABLE。從 而 支持大表(這些表的記錄相對于內(nèi)存來說太大了)。被緩存的表的索引也可以保存到硬盤中。因此,數(shù)據(jù)庫的大小 就可以不受到內(nèi)存大小的限制。進入緩存表要比從內(nèi)存表里獲取數(shù)據(jù)要慢些。從1.7.0版本開始,支 持第三種模式:數(shù)據(jù)可以存儲在文本文件(如CSV格式的文件)中。對應(yīng)的語句時:CREATEXT TABLE。在關(guān)閉數(shù)據(jù)庫前,當前狀態(tài)會被保存到磁盤中。緩存表中的數(shù)據(jù)會被保存到一個單獨的 文件中。啟動HSQLD時,數(shù)據(jù)庫從磁盤中載入數(shù)據(jù)(SQLW本被執(zhí)行),如果數(shù)據(jù)庫被毀壞(比

9、如使用 Ctrl+C或者斷電),數(shù)據(jù)也不會丟失。這是因為當下次數(shù)據(jù)庫重新啟動時,它使用腳本恢復到最近一次(有 腳本文件的那次)的狀態(tài)?;旌辖壎J剿械哪J蕉伎梢栽谝粋€程序里使用,系統(tǒng)可以在統(tǒng)一時間使用這四種模式,去連接四 種不同的數(shù)據(jù)庫,例如:c1=DriverManager.getConnection(',jdbc:hsqldb:.,'sa'','n,);c2=DriverManager.getConnection(”jdbc:hsqldb:test"Jsa"J");c3=DriverManager.getConnect

10、ion(,jdbc:hsqldb :http:/dbserver ","sa",n");c4=DriverManager.getConnection(',jdbc:hsqldb:hsql:/dbserver,7,sa,',H,)在這個例子中,四個連接被打開:c1是內(nèi)存數(shù)據(jù)庫;c2打開的是本地數(shù)據(jù)庫test ; c3使用http協(xié)議連接dbserver 數(shù)據(jù)庫;c4也是連接dbserver機器,但是使用的是更快的hsql協(xié)議。這里的限制就是:只有一個進程內(nèi)的全內(nèi) 存進程是可用的。比較每種模式或配置都有不同的細節(jié)和好壞兩個方面:事務(wù)處理對于w

11、ebserver和servlet模式而言,由于HTTP協(xié)議是無狀態(tài)的,因此,每個查詢 數(shù)據(jù)庫都建立新的連接。每次查詢都需要發(fā)送用戶名和密碼到數(shù)據(jù)庫中,然后建立一個新的連接,同時也建立 一個新的事務(wù)(因為事務(wù)是綁定到連接中的)。可以使用cookies:但是現(xiàn)在還沒有實現(xiàn)。并發(fā)訪問SERVER莫式允許系統(tǒng)和管理工具(比如DatabaseManager同時訪問數(shù)據(jù)庫)。數(shù)據(jù)庫性能優(yōu)化因素內(nèi)存數(shù)據(jù)庫不需要訪問系統(tǒng),因此是最快的。其他模式的數(shù)據(jù)庫需要訪問文件系統(tǒng), 每個INSERT/UPDATE/DELE操作都要保存至【J磁盤中,因此速度慢些。如果select和delete查 詢命中了緩存表的信息,則速度幾乎和內(nèi)存表速度一樣快,否則就要慢許多(因為要和操作系統(tǒng)的文件系 統(tǒng)交互)。每

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論