千家信息网

嵌入式数据库H2的使用以及集成Spring Boot的操作示例

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,嵌入式数据库H2的使用以及集成Spring Boot的操作示例,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.概要前面
千家信息网最后更新 2026年11月01日嵌入式数据库H2的使用以及集成Spring Boot的操作示例

嵌入式数据库H2的使用以及集成Spring Boot的操作示例,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1.概要

前面讲一些Mybatis特性的时候总是要写一些例子演示给粉丝。用Mysql或者其他很大的数据库太重了,因为只是个demo而已。当然也可以使用docker来安装。但是还是需要依赖一些东西。有没有非常小巧而且便于携带的数据库,而且能满足很小场景的数据库。当然有。今天介绍一种纯java编写而且支持jdbc的嵌入式关系型数据库H2。

2.数据库H2

H2数据库的特点:

  • 非常快,开源,支持JDBC API

  • 嵌入式和服务器模式;内存数据库

  • 基于浏览器的控制台应用程序

  • 占用空间小,jar只有2MB大小

以上只是官网列出的特点。其实还有跨平台的优势,支持目前常见的大部分平台。还兼容常见的主流关系型数据库,比如DB2、Oracle、MS SQL Server、Mysql、PostgreSQL、HSQLDB、Ignite、Derby等。

3.使用场景

基于以上的特点。H2数据库特别适用于快速构建的小型应用。尤其在应用开发中和单元测试中使用非常方便,而且节省系统资源。而且springboot的依赖池也收录了H2数据库。接下来我们通过springboot结合Mybatis来对H2数据库进行一些特性的讲解演示。

4.springboot中使用H2

springboot使用H2数据库非常简单。集成BOM下的H2依赖就可以了。这里为了演示我们还引入了Mybatis。

                    org.mybatis.spring.boot            mybatis-spring-boot-starter            2.1.0                            com.h3database            h3            runtime        

当然引入依赖还不够我们还需要对其他参数进行配置。当然这些配置可以通过springboot的 application.yml(application.properties)来完成。我们知道H2支持像tomcat一样内嵌到springboot应用中,也支持独立的server进程模式。通过不同的配置我们来演示一下。

5.内嵌模式

内嵌模式,就是把在应用中引入H2,启动应用的同时,会把H2数据服务也启动,应用中既包含了H2数据库的服务端,同时应用又作为客户端来连接H2数据库。

5.1 内存模式连接

内存模式就是数据库文件存在于内存中,没有持久化,当应用进程关闭时数据库与数据表会消失。为了独立环境,我们利用springboot的profile特性来隔离不同模式的环境配置。我们定制一个名称为application-inner.yml来测试内嵌模式。配置如下:

spring:  datasource:    #  驱动    driver-class-name: org.h3.Driver    # h3 内存数据库 内存模式连接配置 库名: mybatis    url: jdbc:h3:mem:mybatis    # 初始化数据表 DDL    schema: classpath:sql/init.sql    #  初始化数据 DML    data: classpath:sql/data.sql  h3:    #    开启console 访问 默认false    console:      enabled: true      settings:        #      开启h3 console 跟踪 方便调试  默认 false        trace: true        #      允许console 远程访问 默认false        web-allow-others: true      #  h3 访问路径上下文      path: /h3-console# 日志logging:  level:    cn:      felord: debug# mybatis 配置mybatis:  mapper-locations: classpath:mapper/*.xml  configuration:    map-underscore-to-camel-case: true  type-aliases-package: cn.felord.mybatis.entity  type-handlers-package: cn.felord.mybatis.type

springboot项目 通过指定 --spring.profiles.active=inner启动后,输入http://localhost:8080/h3-console,进入H2数据的控制台:

一定要注意红框按照你配置文件中的spring.datasource.url来设置,不要用默认值。如果没有设置密码直接点connect,设置密码了输入。进入下列界面:

因为我们在初始化指定了DDL 、 DML SQL脚本,创建了student表,而且插入了3条数据。所以会呈现出来。证明集成成功。同时我们执行maven 工程的测试包也会成功完成Mybatis 单元测试。但是我们关闭应用后数据会丢失因为这些数据存在于内存中。内存是会被回收的。不信你注释掉 spring.datasource.schema和spring.datasource.data 重启看看。那么如何持久化呢?这就用到嵌入模式了。

5.2 嵌入模式连接

嵌入模式就是数据库文件存在于应用当前的硬盘内,进行了持久化,当应用进程关闭时数据库与数据表不会消失。我们只需要将5.1的yml配置中的 spring.datasource.url 改为jdbc:h3:file:E:/H2/mybatis 。然后启动重新登录console。注意url要改为jdbc:h3:file:E:/H2/mybatis哦。发现数据都在,然后我们关闭再启动发现报错了:

说明数据库中的数据冲突了。我们注释掉DDL、DML初始化发现又能启动了。证明数据持久化了。url 中 file: 后缀你系统的可用路径,H2就能把数据持久化到该路径下。

5.3兼容性

开始我们提到H2可以兼容很多数据库。如何兼容呢?通过url后缀MODE参数来设置,总结一下自己使用:

  • Oracle jdbc:h3:~/test;MODE=Oracle或SQL语句SET MODE Oracle

  • Mysql jdbc:h3:~/test;MODE=MySQL;DATABASE\_TO\_LOWER=TRUE

  • PostgreSQL jdbc:h3:~/test;MODE=PostgreSQL;DATABASE\_TO\_LOWER=TRUE

  • MS SQL Server jdbc:h3:~/test;MODE=MSSQLServer或SQL语句SET MODE MSSQLServer

其他不一一列举,但是注意兼容也不是完全兼容,会有一些注意事项和微小的差别。一般不会出现问题。进一步了解可查阅官方文档和其他资料。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

数据 数据库 模式 应用 配置 内存 支持 测试 演示 嵌入式 同时 就是 数据表 文件 特性 特点 进程 服务 不同 成功 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 博彦科技互联网金融 广州为想互联网科技有限公司 深圳九邦互联网科技有限公司 高科技互联网 科技平台互联网 互联网最新的科技有限公司 远信互联网科技 互联网与未来科技 联恩商钥互联网科技有限公司 华中科技有哪些互联网大佬 互联网科技中介 千方科技属于互联网企业吗 知域互联网科技有限公司大骗子 广西互联网科技孵化中心 健康食品互联网创新科技园项目 银川新华互联网科技学校联系电话 沐思想互联网科技有限公司 元气玛特互联网科技公司是外包吗 互联网科技实习生岗位 互联网科技品牌 厦门中拓互联网络科技有限公司 科技互联网技术 与互联网科技公司 互联网科技英文 互联网软件和科技 中国航天科技大学国际工业互联网 互联网科技与大数据专业 滨湖区互联网智能科技产品有哪些 山东有哪些互联网科技公司 互联网高科技行业有哪些企业
0