H2数据库学习(一)

H2数据库是一个免费的、快速的内存级别数据库,支持内存中的数据库创建和表。文章介绍了其主要特性如开源、JDBC/ODBC接口、内存应用和多种运行模式,以及如何通过内嵌、服务器和混合模式连接。适合SpringBoot项目中作为内存数据库和缓存解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

H2数据库

H2数据库是Thomas Mueller提供的一个开源的、纯java实现(内存级别)的关系数据库,因为它支持在内存中创建数据库和表。

1.H2数据库的主要特性:
  • 免费、开源、快速
  • 嵌入式的数据库服务器,支持集群
  • 提供 JDBC、ODBC 访问接口,提供基于浏览器的控制台管理程序
  • Java 编写,可使用 GCJ 和 IKVM.NET 编译且不受平台的限制
  • 短小精干的软件,1M 左右
2.H2数据库的应用:
  • 可以同应用程序打包在一起发布,可以非常方便地存储少量结构化数据
  • 单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态
  • 是作为缓存,即当做内存数据库,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以拿它当Memcached使,作为后端MySQL/Oracle的一个缓冲层,缓存一些不经常变化但需要频繁访问的数据,比如字典表、权限表
3.H2数据库的运行模式:
  • 内嵌模式(Embedded Mode)

    ​ 内嵌模式下,应用和数据库同在一个JVM中,通过JDBC进行连接。可持久化,但同时只能一个客户端连接。内嵌模式性能会比较好。对并发打开数据库的数量或打开连接的数量没有限制。

  • 服务器模式(Server Mode)

    ​ 使用 JDBC 或 ODBC 在 TCP/IP 上的远程连接,使用服务器模式和内嵌模式一样,只不过它可以跑在另一个进程里。服务器模式比内嵌模式慢因为所有数据都通过TCP/IP传输。

  • 混合模式

    ​ 混合模式是内嵌模式和服务模式的组合。第一个应用通过内嵌模式与数据库建立连接,同时也作为一个服务器启动,于是另外的应用(运行在不同的进程或是虚拟机上)可以同时访问同样的数据。第一个应用程序的本地连接与嵌入式模式的性能一样快,而其他连接理论上个的都会略慢。

    ​ 服务器可以从应用程序内(使用服务器API)启或停止,或自动(自动混合模式)。当使用自动混合模式时,所有想要连接到数据库的客户端(无论是本地连接还是远程连接)都可以使用完全相同的数据库URL来实现。

4.H2数据库的连接
  • 以嵌入式(本地)连接方式连接H2数据库:

​ 这种连接方式默认情况下只允许有一个客户端连接到H2数据库。当有客户端连接到H2数据库之后,此时数据库文件就会被锁定,那么其他客户端就无法再连接了。

连接语法:
jdbc:h2:[file:][]
例如:
//连接位于用户目录下的test数据库
jdbc:h2:~/test
jdbc:h2:file:/data/sample
jdbc:h2:file:E:/H2/gacl(Windows only)

  • 使用TCP/IP的服务器模式(远程连接)方式连接H2数据库(推荐):

​ 这种连接方式和其他数据库连接方式类似,是基于Service的形式进行连接的,因此允许多个客户端同时连接到H2数据库。

连接语法:
jdbc:h2:tcp://[:]/[ ]
范例:
jdbc:h2:tcp://localhost/~/test

参考链接:SpringBoot2.x系列教程之H2内存数据库使用教程详解

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值