數據庫-H2-簡介

原文出處:http://blog.csdn.net/yixiaoping/article/details/9801397/

H2官網:http://www.h2database.com/html/main.html


常用的開源數據庫有:H2,Derby,HSQLDB,MySQL,PostgreSQL。

其中H2和HSQLDB類似,十分適合作爲嵌入式數據庫在開發時使用,減少開發過程中不必要的配置,其它的數據庫大部分都需要安裝獨立的客戶端和服務器端。


H2的優勢:
1、h2採用純Java編寫,因此不受平臺的限制。
2、h2只有一個jar文件,十分適合作爲嵌入式數據庫試用。
3、性能和功能的優勢,H2比HSQLDB的最大的優勢就是h2提供了一個十分方便的web控制檯用於操作和管理數據庫內容,這點比起HSQLDB的swing和awt控制檯實在好用多了。


準備工作

 
1、下載程序壓縮包,下載地址:http://www.h2database.com/html/download.html
2、解壓文件,這裏以%H2_HOME%表示爲解壓的文件目錄。Windows下運行%H2_HOME%\bin\h2.bat(Linux下運行%H2_HOME%\bin\h2.sh)將會在瀏覽器中自動打開如下控制檯界面。(請確認是否安裝了jdk,並設置了JAVA_HOME環境變量)




3、點擊連接按鈕登錄。




4、執行上圖中紅色部分sql語句,成功創建test表。




因爲沒有指定數據庫文件位置,會自動輸出到輸出到C:\Users\Administrator下。


H2文件結構


h2
|---bin
|     |---h2-1.3.154.jar // jar包
|     |---h2.bat           // Windows控制檯啓動腳本
|     |---h2.sh            // Linux控制檯啓動腳本
|     |---h2w.bat        // Windows控制檯啓動腳本(不帶黑屏窗口)
|---docs                  // 幫助文檔
|---service               // 通過wrapper包裝成服務。
|---src                     // 源代碼
|---build.bat             // Windows構建腳本
|---build.sh              // Linux構建腳本


H2的使用


支持Embedded(嵌入式模式)、Server(服務模式)和Memory(內存模式)三種模式


Embedded模式


1、新建java project工程 H2Test。


2、將%H2_HOME%\bin\h2-1.3.154.jar 複製到 \H2Test\lib下,並加入工程引用。
3、新建Generic H2 (Embedded)數據庫,指定:JDBC ,然後執行上面的test sql語句,來創建一個test表。


4、新建 TestH2類 主要代碼 

public static void main(String[] a)
      throws Exception {
   Class.forName("org.h2.Driver");
   Connection conn = DriverManager.
       getConnection("jdbc:h2:E:\\research\\workspace\\H2Test\\db\\test", "sa", "");
   // add application code here
   Statement stmt = conn.createStatement();
   ResultSet rs = stmt.executeQuery("SELECT * FROM TEST ");   
      while(rs.next()) {   
       System.out.println(rs.getInt("ID")+","+rs.getString("NAME"));
      }
   conn.close();
 }

控制檯打印出:1,Hi



Server模式


1、直接將jdbc url 改爲:jdbc:h2:tcp://localhost/~/test  就行了。因爲我們在上面第一步的時候已經在C:\Users\Administrator創建了test數據庫。
你也可以再創建新的數據庫,默認都是保存在C:\Users\Administrator下的。
注意:你必須啓動服務:%H2_HOME%\bin\h2.bat 或者 以服務模式啓動:%H2_HOME%\service\0_run_server_debug.bat ,裏面有好幾個腳本把H2部署爲服務模式。每次機器啓動後自動啓動H2服務。
2、新建 TestServerH2類 主要代碼

public static void main(String[] a)
    throws Exception {
   Class.forName("org.h2.Driver");
   Connection conn = DriverManager.
       getConnection("jdbc:h2:tcp://localhost/~/test", "sa", "");
   // add application code here
   Statement stmt = conn.createStatement();
   ResultSet rs = stmt.executeQuery("SELECT * FROM TEST ");   
    while(rs.next()) {   
     System.out.println(rs.getInt("ID")+","+rs.getString("NAME"));
    }
   conn.close();
 }
運行的結果和上面一樣。


Memory模式(數據只保存在內存中)


1、新建 TestMemH2類 主要代碼

public static void main(String[] a)
    throws Exception {
   Class.forName("org.h2.Driver");
   Connection conn = DriverManager.
       getConnection("jdbc:h2:tcp://localhost/mem:test2", "sa", "");
   // add application code here
   Statement stmt = conn.createStatement();
  
   stmt.executeUpdate("CREATE TABLE TEST_MEM(ID INT PRIMARY KEY,NAME VARCHAR(255));");
   stmt.executeUpdate("INSERT INTO TEST_MEM VALUES(1, 'Hello_Mem');");
   ResultSet rs = stmt.executeQuery("SELECT * FROM TEST_MEM");   
    while(rs.next()) {   
     System.out.println(rs.getInt("ID")+","+rs.getString("NAME"));
    }
   conn.close();
 }

控制檯打印出:1,Hello_Mem


2、上面的 URL 改爲 jdbc:h2:~/mem:test 也是可以的。如果是localhost必須啓動服務。




發佈了3 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章