什么是H2数据库
H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。
H2是纯java编写的,源码大小只有1M左右。
优点:
速度非常快,开源,JDBC API
嵌入式和服务器模式; 内存数据库
基于浏览器的Console应用
体积小:大约2 MB的jar文件大小
开始我们的使用教程:
官网下载地址:连接
maven地址:连接
(这里只演示官网下载的内容)
安装后目录结构
bin目录下有一个jar包,整个h2就是这一个jar包
h2提供了可视化web界面,我们打开。
这两个都一样随便打开一个可以看到如下界面(说明我们的H2数据库正常启动了)
这里有个坑,高版本的h2不支持默认创建数据库了。所以你刚开始测试连接怎么也连不上。(不过低版本没有这个限制,貌似是2019年后的版本就这个限制)
H2连接方式
连接URL说明
type: 连接方式 mem(内存模式) file(嵌入式) tcp(服务模式)
一、在内存中运行
这点类似于Redis,运行时在内存中,一旦退出内存数据情况,什么也没发生。不过和Redis还有点区别,Redis默认有过期时间,而H2是程序结束直接清理内存。
连接字符串
jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1
二、嵌入式
数据库持久化存储为单个文件
连接字符串
jdbc:h2:file:~/.h2/DBName;AUTO_SERVER=TRUE
三、服务模式
H2支持三种服务模式:
- web server:此种运行方式支持使用浏览器访问H2 Console
- TCP server:支持客户端/服务器端的连接方式
- PG server:支持PostgreSQL客户端
连接字符串
jdbc:h2:tcp://localhost/~/.h2/test;AUTO_SERVER=TRUE
(路径可绝对,可相对)
连接字符串参数
- DB_CLOSE_DELAY:要求最后一个正在连接的连接断开后,不要关闭数据库
- MODE=MySQL:兼容模式,H2兼容多种数据库,该值可以为:DB2、Derby、HSQLDB、MSSQLServer、MySQL、Oracle、PostgreSQL
- AUTO_RECONNECT=TRUE:连接丢失后自动重新连接
- AUTO_SERVER=TRUE:启动自动混合模式,允许开启多个连接,该参数不支持在内存中运行模式
- TRACE_LEVEL_SYSTEM_OUT、TRACE_LEVEL_FILE:输出跟踪日志到控制台或文件, 取值0为OFF,1为ERROR(默认值),2为INFO,3为DEBUG
- SET TRACE_MAX_FILE_SIZE mb:设置跟踪日志文件的大小,默认为16M