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依赖

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>2.1.214</version>
        </dependency>

配置文件

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:~/test
jdbc:h2:file:/data/sample
jdbc: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/~/test
jdbc:h2:tcp://dbserv:8084/~/sample
jdbc:h2:tcp://localhost/mem:test

使用 TLS 的服务器模式(远程连接)
jdbc:h2:ssl://<server>[:<port>]/[<path>]<databaseName>
jdbc:h2:ssl://localhost:8085/~/sample;
使用加密文件jdbc:h2:<url>;CIPHER=AES
jdbc:h2:ssl://localhost/~/test;CIPHER=AES
jdbc: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=TRUE
jdbc:h2:file:~/sample;IFEXISTS=TRUE
虚拟机退出时不要关闭数据库jdbc:h2:<url>;DB_CLOSE_ON_EXIT=FALSE
在连接上执行 SQLjdbc: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=TRUE
jdbc:h2:tcp://localhost/~/test;AUTO_RECONNECT=TRUE
自动混合模式jdbc:h2:<url>;AUTO_SERVER=TRUE
jdbc: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
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤