概述
H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制。同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。
使用说明
H2 控制台应用
H2 允许用户通过浏览器接口方式访问 SQL 数据库。
进入官方下载地址,选择合适版本,下载并安装到本地。
启动方式:在 bin 目录下,双击 jar 包;执行 java -jar h2*.jar;执行脚本:h2.bat 或 h2.sh。
在浏览器中访问:http://localhost:8082,应该可以看到下图中的页面:
点击 Connect ,可以进入操作界面:
操作界面十分简单,不一一细说。
嵌入式应用
JDBC API
Connection conn = DriverManager.
getConnection("jdbc:h2:~/test");
conn.close();
连接池
import org.h2.jdbcx.JdbcConnectionPool;
JdbcConnectionPool cp = JdbcConnectionPool.
create("jdbc:h2:~/test", "sa", "sa");
Connection conn = cp.getConnection();
conn.close(); cp.dispose();
Maven
com.h2database
h2
1.4.197
Hibernate
hibernate.cfg.xml (or use the HSQLDialect):
org.hibernate.dialect.H2Dialect
TopLink 和 Glassfish
Datasource class: org.h2.jdbcx.JdbcDataSource oracle.toplink.essentials.platform.database.H2Platform
运行方式
嵌入式
数据库持久化存储为单个文件。
连接字符串:\~/.h2/DBName 表示数据库文件的存储位置,如果第一次连接则会自动创建数据库。
jdbc:h2:\~/test – ‘test’ 在用户根目录下
jdbc:h2:/data/test – ‘test’ 在 /data 目录下
jdbc:h2:test – ‘test’ 在当前工作目录
内存式
数据库只在内存中运行,关闭连接后数据库将被清空,适合测试环境
连接字符串:jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1
如果不指定 DBName,则以私有方式启动,只允许一个连接。
jdbc:h2:mem:test – 一个进程中有多个连接
jdbc:h2:mem: – 未命名的私有库,一个连接
服务模式
H2 支持三种服务模式:
web server:此种运行方式支持使用浏览器访问 H2 Console
TCP server:支持客户端/服务器端的连接方式
PG server:支持 PostgreSQL 客户端
启动 tcp 服务连接字符串示例:
jdbc:h2:tcp://localhost/\~/test – 用户根目录
jdbc:h2:tcp://localhost//data/test – 绝对路径
启动服务
执行 java -cp *.jar org.h2.tools.Server
执行如下命令,获取选项列表及默认值
java -cp h