H2database是一款用java語言編寫的開源數據庫。
H2服務器下載下載地址: http://www.h2database.com/。
原文地址http://www.h2database.com/html/tutorial.html
開啓和使用H2控制檯
H2Database支持通過瀏覽器可以訪問一個SQL數據庫,數據庫種類包括H2和其他相應的支持JDBC的數據庫類型。
這是一個客戶端/服務器端模式,所以運行它需要一個服務器端和一個客戶端(瀏覽器)。根據你的平臺和環境,你可以通過多種方式啓動H2:
1、Windows Click [Start], [All Programs], [H2], and [H2 Console (Command Line)]
如果你使用的是SUN JKD1.4 或1.5,將會彈出一個標題爲“H2 Console”的窗口; 如果你使用的是SUN JDK1.6,將會出現在成功啓動的系統上顯示圖標。
假如未彈出窗口也未出現圖標,原因很可能是你的JAVA沒有被正確的安裝(在這種情況下,嘗試通過其它方法啓動服務,如:打開一個瀏覽器窗口,並使其指向http://localhost:8082)。
2、Windows 從文件夾中定位到h2/bin,雙擊h2.bat。
將會出現一個控制檯窗口。如果有問題的話,在控制檯窗口中將會出現錯誤信息。 隨後一個瀏覽器窗口將被打開並指向登錄頁面(URL: http://localhost:8082)。
3、Any 啓動一個控制檯窗口,定位到目錄'h2/bin' , 輸入:
- java -cp h2.jar org.h2.tools.Server
防火牆
當你啓動服務時,防火牆可能會顯示一個安全警告信息(如果你安裝了防火牆)。如果你不打算讓位於同一個網絡中的其他計算機訪問你本機的數據庫服務, 你可以設置防火牆
阻止這些連接。此時來自本機的連接保持仍然可用。相反的,如果你打算允許其他機器訪問本機的提供的數據庫服務, 你可以設置防火牆允許這些連接。
此外H2本身自帶了一個小的防火牆: 默認情況下,其他機器不能連接到本服務。 爲了改變默認, 你可以進入'Preferences' , 選擇'Allow connections from other computers'
譯者注(Preferences選項位置數據庫啓動頁面頂部)
本地版本
本地版本不必需JAVA支持, 因爲它可以使用GCJ來編譯。但是,現在基於Window的GCJ下運行H2仍不穩定。
測試JAVA
打開命令窗口並輸入 測試你安裝的java的版本
java -version
如果你得到的是錯誤信息, 此時你可能需要把java目錄添加到環境變量中。
錯誤消息“端口被使用”
同一端口你只能運行一個H2控制檯實例,否則你將得到如下錯誤信息
在同一臺電腦上可以開啓多個控制檯程序(使用不同的端口), 如果控制檯支持併發連接,則無需使用不同端口。
使用其他端口
如果端口被其它程序使用,你可能會想在其它端口開啓H2服務。此時可以通過改變.h2.server.properties中的端口設置來實現。
該文件被保存在用戶目錄下(對於Windows 通常是Documents and Settings/<username>)。對應的管理配置項是webPort。
啓動成功
如果服務在控制檯中啓動成功,將會打開一個新的窗口並顯示如下:
H2 Server running on port 9092
Webserver running on https://localhost:8082/
不要在此窗口內操作,否則你可能會停止掉H2服務(如果你開啓了快速編輯模式)。
藉助瀏覽器連接服務器
如果H2服務器成功啓動的話 你能夠使用一個web瀏覽器來連接H2。 瀏覽器必須支持javascript、frames和樣式層疊表(css)。
如果你是在本地啓動服務, 在瀏覽器中輸入http://localhost:8082。 如果你是從另外一臺計算機連接啓動服務,你必須提供
H2服務器的ip地址,例如:http://192.168.0.2:8082. 如果你打算在服務器端啓用ssl, 瀏覽器的URL地址必須以https開頭。
多個併發的sessions
h2Database支持多個併發的瀏覽器session。 因爲數據庫對象位於服務器, 所以連接的數目受服務器端內存大小的限制。
程序配置
啓動服務時將在本地目錄下創建一個配置文件(.h2.server.properties)。 對於windows來說, 該文件位於
c:Document and Settings/[username]。 此文件中包含應用程序的配置信息。
登錄
在登錄頁面,你必須提供數據庫的連接信息。包括設置你的數據庫的JDBC驅動、 JDBC URL、 用戶名和密碼。 如果你做完上面步驟,點擊[connect]
你可以保存並重新使用以前的連接信息, 這些信息被自動保存在應用程序的properties文件中。
錯誤信息
錯誤信息以紅色字來顯示。 點擊該信息可以顯示或隱藏相應的異常鏈。
添加數據庫驅動
通過將相應驅動的jar文件地址添加進環境變量H2DRIVERS 或CLASSPATH, 可以爲H2數據庫註冊其它的驅動。 例如:(Window) 爲了添加數據庫驅動包C:\Programs\hsqldb\lib\hsqldb.jar,
你可以將環境變量的H2DRIVERS 設置成C:\Programs\hsqldb\lib\hsqldb.jar。
H2支持多種驅動,驅動之間使用“;”(windows)或“:”(其他操作系統)來分割。另外,描述驅動的路徑中支持空格, 路徑加引用。
使用程序
程序包含3個面板, 頂部的工具條、 左邊的樹和右邊的查詢/結果面板。 數據庫實體(例如: tables)在左邊的樹結構中顯示。在查詢面板中輸入SQL命令
並點擊“Run”。命令的執行結果將緊跟在命令下面。
添加數據表名和列名
通過單擊左邊的相應樹狀結構你可以將表名或列名字段插入到查詢面板中。 在查詢面板中查詢語句爲空時,如果你單擊一個表,‘SELECT * FROM ...’將被添加進去。當在查詢面板中輸入一個查詢語句後,
被使用的表將自動展開在左邊的樹中。例如: 如果你輸入SELECT * FROM TEST T WHERE T, 表TEST將在左邊的樹中被自動展開。
斷開連接和停止服務
在瀏覽器中, 點擊工具面板上的'Disconnect'斷開連接。 但是,此時H2服務器仍然在運行並且可以接受新的session。
爲了停止服務, 你可以通過點擊頂部工具面板中的【exit】圖標。 如果該圖標不存在,(因爲你可能是通過其他方式啓動的服務), 你可以在啓動該H2服務的控制檯窗口中按Ctrl+C來停止H2服務, 或直接關閉該控制檯窗口來停止H2服務。
使用JDBC連接到數據庫
爲了連接到數據庫, 一個java程序首先需要加載數據庫驅動,然後獲得一個連接。完成上述操作的一個簡單方法是使用如下的代碼:
- import java.sql.*;
- public class Test {
- public static void main(String[] a)
- throws Exception {
- Class.forName("org.h2.Driver");
- Connection conn = DriverManager.
- getConnection("jdbc:h2:~/test", "sa", "");
- // add application code here
- }
- }
該代碼首先加載驅動(Class.forName())然後打開一個連接(使用DriverManager.getConnection())。在所有的場合下,驅動的名字都是'org.h2.Driver'。
爲了能使被該數據庫驗證通過,數據庫的URL通常以jdbc:h2:開頭。getConnection()中的第二個參數是用戶名(在本例中'sa'是數據庫管理員);第三個參數是密碼。
注意: 在本數據庫中用戶名是不區分大小寫的, 密碼區分大小寫。
新建數據庫
默認情況下,如果URL中指定的數據庫不存在將自動創建。創建數據庫的用戶將成爲該數據庫的管理員。
使用服務器
H2目前支持3種服務模式: web服務、TCP服務及ODBC服務模式。這些服務模式以不同的方式啓動。
從命令行啓動方式
命令行啓動將加載默認配置, 運行
java org.h2.tools.Server
將加載默認配置。 爲了得到配置選項列表和值, 可以運行
java org.h2.tools.Server -?
通過這些選項可以開啓或停止H2服務器部分功能。 爲了獲得更詳細的信息, 可以參考服務器的Api文檔。
連接到TCP啓動方式
爲了藉助TCP服務連接遠程數據庫,需使用如下驅動和數據庫URL
JDBC driver class: org.h2.Driver
Database URL: jdbc:h2:tcp://localhost/~/test
關於數據庫URL更詳細描述,可以參考具體文檔。
程序內部啓動服務器方式
可以在應用程序內部啓動或關閉服務。 例子代碼:
- import org.h2.tools.Server;
- ...
- // start the TCP Server
- Server server = Server.createTcpServer(args).start();
- ...
- // stop the TCP Server
- server.stop();
從其他進程中關閉一個TCP服務
TCP服務方式可以從其他進程中關閉, 從命令行中關閉服務器。 運行:
java org.h2.tools.Server -tcpShutdown tcp://localhost:9092
從應用程序中TCP服務,可以運行如下代碼:
org.h2.tools.Server.shutdownTcpServer("tcp://localhost:9094");
這種方法將在服務器端調用System.exit。此方法調用的前提是所有的數據庫連接已被關閉,以便數據庫在下一次被打開時能正確運行。爲了關閉遠程服務器,應該確保服務器上的遠程連接有效。