H2數據庫簡單使用操作


h2database官網

http://www.h2database.com/html/main.html

下載客戶端控制台

h2database Maven配置

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.199</version>
</dependency>

1 控制台新建數據庫與連接數據庫

1.1建庫

windows系統下點擊h2/bin/h2.bat啟動控制台應用程序

鼠標右鍵點擊桌面右下角圖標 Create a new database...

例如在k盤h2目錄下新建helloForm數據庫,則填寫路徑為k:/h2/helloForm

1.2控制台連接數據庫

開打控制台,點擊H2 Console

driver class 與 jdbc url 有多種填寫方式,詳情參考官網說明文檔

在這里使用 org.h2.Driver 驅動

jdbc url填寫為 jdbc:h2:tcp://localhost/k:/h2/helloForm;database_to_upper=false

  • 其中tcp://localhost/表示使用TCP / IP的服務器模式(遠程連接),該方式允許有多個客戶端同時連接一個數據庫
  • 后綴;database_to_upper=false表示取消默認的自動轉換成大寫。在建表時字段可以區分大小寫,在查詢數據時,也應該嚴格區分表名,與字段的大小寫

成功進入瀏覽器控制台

2 基本使用代碼

package com.h2;

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

/**
 * @Description: H2內嵌數據庫的基本使用
 * @author: haidnor
 */
public class H2Test {

    /**
     * 以嵌入式(本地)連接方式連接H2數據庫
     */
    private static final String JDBC_URL = "jdbc:h2:K:/Java/H2Test/user";

    /**
     * 使用TCP/IP的服務器模式(遠程連接)方式連接H2數據庫(推薦)
     */
    // private static final String JDBC_URL = "jdbc:h2:tcp://10.35.14.122/C:/H2/user";

    // 數據庫管理員用戶名,用戶名不區分大小寫
    private static final String USER = "root";
    // 數據庫管理員用戶名
    private static final String PASSWORD = "root";
    //數據庫驅動
    private static final String DRIVER_CLASS = "org.h2.Driver";

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        Class.forName(DRIVER_CLASS);
        
        // 數據庫連接,如果目錄下沒有指定數據庫,會自動生成
        Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);

        // 獲取數據庫操作對象statement
        Statement statement = conn.createStatement();

        // 建庫
        statement.execute("DROP TABLE IF EXISTS USER_INF");
        // 建表
        statement.execute("CREATE TABLE USER_INF(id INTEGER PRIMARY KEY, name VARCHAR(100), sex VARCHAR(2))");
        // 插入數據操作
        statement.executeUpdate("INSERT INTO USER_INF VALUES(1, 'tom', '男') ");
        statement.executeUpdate("INSERT INTO USER_INF VALUES(2, 'jack', '女') ");
        statement.executeUpdate("INSERT INTO USER_INF VALUES(3, 'marry', '男') ");
        statement.executeUpdate("INSERT INTO USER_INF VALUES(4, 'lucy', '男') ");
        // 查詢數據
        ResultSet resultSet = statement.executeQuery("select * from USER_INF");

        // 遍歷打印數據
        while (resultSet.next()) {
            System.out.println(
                    resultSet.getInt("id") + ", "
                    + resultSet.getString("name") + ", "
                    + resultSet.getString("sex"));
    }
        // 關閉數據庫連接
        statement.close();
        conn.close();
    }

}

H2數據庫連接池的基本使用

package com.h2;

import org.h2.jdbcx.JdbcConnectionPool;
import java.sql.*;

/**
 * @Description: H2數據庫連接池的基本使用
 * @author Haidnor
 * @creat 2019-12-23-11:15
 */
public class H2PoolTest {

    private static final String JDBC_URL = "jdbc:h2:tcp://localhost/K:/Java/H2Test/user";

    // 數據庫管理員用戶名,用戶名不區分大小寫
    private static final String USER = "root";
    // 數據庫管理員用戶名
    private static final String PASSWORD = "root";

    public static void main(String[] args) throws SQLException {

        // JDBC連接池
        JdbcConnectionPool pool = JdbcConnectionPool.create(JDBC_URL, USER, PASSWORD);
        // 建立連接超時時間
        pool.setLoginTimeout(10000);
        // 建立連接最大個數
        pool.setMaxConnections(100);

        Connection conn = pool.getConnection();
        // 獲取數據庫操作對象statement
        Statement statement = conn.createStatement();

        // 查詢數據
        ResultSet resultSet = statement.executeQuery("select * from USER_INF");
        // 遍歷打印數據
        while (resultSet.next()) {
            System.out.println(
                    resultSet.getInt("id") + ", "
                            + resultSet.getString("name") + ", "
                            + resultSet.getString("sex"));
        }
        // 釋放資源
        statement.close();
        // 關閉連接
        conn.close();
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM