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();
}
}