h2database官网
http://www.h2database.com/html/main.html
H2 的 1.4.200 版跨平台压缩包下载地址为 https://h2database.com/h2-2019-10-14.zip
下载客户端控制台

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 stubClass.forName(DRIVER_CLASS);// 数据库连接,如果目录下没有指定数据库,会自动生成Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);// 获取数据库操作对象statementStatement 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();// 获取数据库操作对象statementStatement 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();}}
