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 |
在连接上执行 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=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博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤