目录

[TOC]

H2是一个开源的、纯Java实现的关系数据库。

用途

1、它可以与应用程序打包一起发布,这样可以很方便存储少量的结构化数据。
2、还可以用于单元测试,启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态
3、可以作为缓存,作为NoSQL的一个补充。

特点

1、纯Java编写,不受平台限制
2、只有一个Jar文件,适合作为嵌入式数据库使用
3、提供了一个完善的基于浏览器的Console应用
4、支持标准的sql和jdbc
5、支持内嵌模式,服务器模式和集群

二、下载安装

下载地址

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

H2下载
我们可以下载win安装包,也可以直接下载zip,解压即用。我使用的是ZIP的压缩包。

安装

前面我们说过H2是纯Java编写的,所以在安装H2之前需要配置Java环境,具体Java环境配置这里就不写了。
H2的ZIP安装方式很简单,直接把下载下来的ZIP解压到安装目录下就可以了。
这里写图片描述
启动H2 bin/h2.bat

三、使用

在Spring Boot环境中配置H2

引入依赖

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

这里还引入了jpa 用来对H2进行操作

服务器模式

配置H2
其中URL使用的形式表示这里使用的是H2的服务器模式。连接的是我们上面安装的本地的H2数据库,因此我们在启动程序前必须把本地的H2数据库先启动。
URL中指定了数据存放位置,如果数据库test不存在会自动创建。
创建数据库

配置中指定两个SQL脚本,每次启动程序都会重新执行脚本对数据进行初始化,当然我们可以不指定。
schema.sql 创建了一个user表结构
data.sql 向user表插入了三条数据

查看Console
在前面启动H2数据库的时候会自动弹出consol管理页,按程序中指定的URL进行连接即可查看到我们创建的数据
这里写图片描述
用户名 sa 是默认的用户,密码默认为空。
这里写图片描述
登入进Console后我们可以查看user表

在配置文件中配置了Web Console的路径,同样我们可以使用这个路径进行登入。

内嵌模式

H2最方便的是只需要一个jar包就可以使用了。前面我们引入H2依赖后其它就可以使用H2了,不需要连接我们本地安装的H2。
可以直接不指定URL
这里写图片描述
或者修改一URL为:
这里写图片描述
我们可以使用Web Console连接,连接的url为

jdbc:h2:mem:testdb

当我们没有指定URL的时候,默认的连接的数据库也是testdb 之前看教程说在把日志改成DEBUG可以看到连接的URL,但我试了还是没有找到,只只根据教程上的URL也连接,确定连接上了对应的数据库