H2数据库 – 一个Java开源的超小型嵌入式关系型数据库

2022-11-18 17:44:24 浏览数 (1)

本页目录

  • H2数据库
    • H2的主要特点是:
  • H2数据库相关资料连接
  • H2数据库相关操作
    • h2数据库Maven依赖
    • 配置文件
    • 访问控制台
  • 数据库 URL 概述

H2数据库

H2的主要特点是:

  • 非常快,开源,JDBC API
  • 嵌入式和服务器模式;基于磁盘或内存中的数据库
  • 事务支持,多版本并发
  • 基于浏览器的控制台应用程序
  • 数据库加密、全文搜索
  • 占用空间小的纯 Java:大约 2.5 MB 的 jar 文件大小
  • ODBC 驱动程序

H2数据库相关资料连接

H2数据库官网:https://www.h2database.com/html/main.html

Gitee地址:https://gitee.com/mirrors/h2database

H2数据库相关操作

h2数据库Maven依赖

代码语言:javascript复制
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>2.1.214</version>
        </dependency>

配置文件

代码语言:javascript复制
spring.datasource.driver-class-name=org.h2.Driver
# 基于内存会自动创建账号、密码,无需搭建H2服务端。
spring.datasource.username=sa
spring.datasource.password=123456
# 基于内存会自动创建test库 文档压根就没说~的含义
spring.datasource.url=jdbc:h2:~/test

# 开启Web控制台
spring.h2.console.enabled=true
# 指定Web控制台访问路径
spring.h2.console.path=/h2
# 指定Web控制台 管理员密码(无管理员账号,只需要密码即可!)
spring.h2.console.settings.web-admin-password=root
spring.h2.console.settings.web-allow-others=true
spring.h2.console.settings.trace=true

访问控制台

启动Java项目,然后访问项目路径拼接/h2,因为我们配置文件配置的就是/h2

点击配置,输入你配置文件配置的密码。

账号sa,密码123456,进入H2DB控制台

这里很多人直接Spring-JPA直接操作了,我还是不喜欢JPA。

我们没单独启动H2服务端,这就是基于内存的存储形式。

如果我们需要基于硬盘存储,我们就需要下载H2-Server端,然后配置文件指向Server端即可实现操作在硬盘中。或者我们直接使用嵌入式指定不同的jdbc连接URl概述即可。如:jdbc:h2:file:/data/sample

数据库 URL 概述

该数据库支持多种连接模式和连接设置。这是使用不同的数据库 URL 实现的。URL 中的设置不区分大小写。

话题

URL 格式和示例

嵌入式(本地)连接

jdbc:h2:[file:][<path>]<databaseName>jdbc:h2:~/testjdbc:h2:file:/data/samplejdbc:h2:file:C:/data/sample (Windows only)

内存中(私有)

jdbc:h2:mem:

内存中(命名)

jdbc:h2:mem:<databaseName>jdbc:h2:mem:test_mem

使用 TCP/IP 的服务器模式(远程连接)

jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>jdbc:h2:tcp://localhost/~/testjdbc:h2:tcp://dbserv:8084/~/samplejdbc:h2:tcp://localhost/mem:test

使用 TLS 的服务器模式(远程连接)

jdbc:h2:ssl://<server>[:<port>]/[<path>]<databaseName>jdbc:h2:ssl://localhost:8085/~/sample;

使用加密文件

jdbc:h2:<url>;CIPHER=AESjdbc:h2:ssl://localhost/~/test;CIPHER=AESjdbc:h2:file:~/secure;CIPHER=AES

文件锁定方法

jdbc:h2:<url>;FILE_LOCK={FILE|SOCKET|FS|NO}jdbc:h2:file:~/private;CIPHER=AES;FILE_LOCK=SOCKET

仅在已存在时才打开

jdbc:h2:<url>;IFEXISTS=TRUEjdbc:h2:file:~/sample;IFEXISTS=TRUE

虚拟机退出时不要关闭数据库

jdbc:h2:<url>;DB_CLOSE_ON_EXIT=FALSE

在连接上执行 SQL

jdbc:h2:<url>;INIT=RUNSCRIPT FROM ‘~/create.sql’jdbc:h2:file:~/sample;INIT=RUNSCRIPT FROM ‘~/create.sql’;RUNSCRIPT FROM ‘~/populate.sql’

用户名和/或密码

jdbc:h2:<url>[;USER=<username>][;PASSWORD=<value>]jdbc:h2:file:~/sample;USER=sa;PASSWORD=123

调试跟踪设置

jdbc:h2:<url>;TRACE_LEVEL_FILE=<level 0..3>jdbc:h2:file:~/sample;TRACE_LEVEL_FILE=3

忽略未知设置

jdbc:h2:<url>;IGNORE_UNKNOWN_SETTINGS=TRUE

自定义文件访问方式

jdbc:h2:<url>;ACCESS_MODE_DATA=rws

zip 文件中的数据库

jdbc:h2:zip:<zipFileName>!/<databaseName>jdbc:h2:zip:~/db.zip!/test

兼容模式

jdbc:h2:<url>;MODE=<databaseType>jdbc:h2:~/test;MODE=MYSQL;DATABASE_TO_LOWER=TRUE

自动重新连接

jdbc:h2:<url>;AUTO_RECONNECT=TRUEjdbc:h2:tcp://localhost/~/test;AUTO_RECONNECT=TRUE

自动混合模式

jdbc:h2:<url>;AUTO_SERVER=TRUEjdbc:h2:~/test;AUTO_SERVER=TRUE

页面大小

jdbc:h2:<url>;PAGE_SIZE=512

更改其他设置

jdbc:h2:<url>;<setting>=<value>[;<setting>=<value>…]jdbc:h2:file:~/sample;TRACE_LEVEL_SYSTEM_OUT=3

特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!

0 人点赞