H2嵌入式資料庫使用

會Coding的猴子發表於2018-07-01

通常,我們在使用資料庫一般都首選mysql
但是,今天我將介紹一款能夠嵌入到java程式中的資料庫,它能隨著java工程移動而移動,不像mysql那樣,在不同的機器上必須要改配置和重新匯入一遍匯入資料。

  • 首先,進入h2的 官網, 選擇All Platforms版本進行下載
    H2嵌入式資料庫使用
    在你的目錄下會得到這麼一個檔案

H2嵌入式資料庫使用
解壓到當前目錄,進入到h2/bin目錄下
H2嵌入式資料庫使用
有一個h2-*.jar,在命令列下執行java -jar h2-1.4.197.jar
它會在瀏覽器上自動開啟一個h2資料庫的管理頁面
H2嵌入式資料庫使用

  • 在最上方可以選擇語言
  • JDBC URL:jdbc:h2:後面跟著的是資料庫檔案所在的本地絕對路徑名, 也就是cc資料庫在桌面
  • User Name: 當前資料庫所屬的使用者名稱
  • Password: 使用者密碼 點選Connect連線成功, 這時候,桌面會生成一個資料庫檔案:cc.mv.db
    H2嵌入式資料庫使用
    這就是我們的h2資料庫檔案

在資料庫管理頁面上的寫上建標語句, 並點選執行, 執行成功

H2嵌入式資料庫使用
如果出現錯誤資訊報錯了話, 會在cc.mv.db所在的目錄生成一個cc.trace.db檔案, 這個檔案是專門用來存放錯誤日誌的
H2嵌入式資料庫使用
開啟看一下: 裡面報的都是一些java錯誤日誌
H2嵌入式資料庫使用
在瀏覽器中對h2資料庫進行資料操作的話,會沒有程式碼提示,這非常的不方便。所以我推薦使用一個資料庫視覺化連線工具 -> dbeaver 這是免費且跨平臺的工具,自行下載安裝
開啟dbeaver,在連線選項中找到h2 -> Embedded
H2嵌入式資料庫使用

  • 資料庫/模式:h2資料庫檔案的路徑
  • 使用者名稱:資料庫的使用者名稱
  • 密碼:資料庫的密碼 進入編輯驅動設定,我們需要新增一個驅動包,我們刪除原來的jar包,將我們之前bin目錄下的h2-*.jar新增進去, 點選下一步, 完成,這時候,我們已經連線成功了。
    注意,h2資料庫只能擁有一個連線,不能有多個連線,所以我們在使用dbeaver連線h2資料庫時,必須關掉控制檯上讓瀏覽器執行的連線。
    H2嵌入式資料庫使用
    public下的users表就是我們剛剛建立的, 來插入幾條資料。
    在工具欄下找到SQL編輯器
    H2嵌入式資料庫使用
    選中所有資料,按ctrl+enter, 執行所有程式碼
    H2嵌入式資料庫使用
    這時候,資料已經有了
    我們來將h2資料卡應用到java程式中,首先,關閉dbeaver的連線,當有其它程式在對當前資料庫進行操作時,你是不能對它進行操作的
    將cc.mv.db複製到java工程的db資料夾下,並匯入h2資料庫的驅動包h2-*.jar
    H2嵌入式資料庫使用
    cc.trace.db是錯誤日誌資訊,當java程式出錯是,會在cc.mv.db所在的資料夾下生成
  • 使用jdbc連線
package cn.java2016.demo1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.h2.tools.Server;

public class H2DatabaseDemo
{
    private static String driver = "org.h2.Driver"; // h2資料庫驅動類
    private static String url = "jdbc:h2:./db/cc";  // cc資料庫所在目錄及資料庫名
    private static String user = "root";    // 資料庫使用者名稱
    private static String password = "root";    // 資料庫密碼
    
    public static void main(String[] args) throws SQLException, ClassNotFoundException
    {
    	Server server = Server.createTcpServer().start();
    	Class.forName(driver);
    	Connection conn = DriverManager.getConnection(url, user, password);
    	Statement stat = conn.createStatement();
    	ResultSet resultSet = stat.executeQuery("SELECT * FROM users;");
    	while (resultSet.next())
    	{
            System.out.println(resultSet.getObject(1) + " : " + resultSet.getObject(2) + " : " + resultSet.getObject(3));
    	}
    	resultSet.close();
    	stat.close();
    	conn.close();
    	
    	server.stop();	// 關閉h2服務
    }
}
複製程式碼

執行java程式,我們已經將資料取出來了

H2嵌入式資料庫使用

相關文章