我在上一章节中讲解了Spring Boot中整合Mybatis,接下来我给大家介绍一款内存数据库--H2。
H2作为一款内存数据库,适合开发阶段调试代码使用,并不适用于生产阶段。
一. H2数据库简介
1. H2概述
H2 数据库是一个用 Java 开发的嵌入式(内存级别)数据库,它本身只是一个类库,也就是只有一个 jar 文件,可以直接嵌入到项目中。
H2数据库又被称为内存数据库,因为它支持在内存中创建数据库和表。所以如果我们使用H2数据库的内存模式,那么我们创建的数据库和表都只是保存在内存中,一旦服务器重启,那么内存中的数据库和表就不存在了。
2. H2的用途:
H2 主要有如下三个用途:
- <1>. 最常使用的用途就在于可以同应用程序一起打包发布,可以非常方便地存储少量的结构化数据;
- <2>. 可以用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态;
- <3>. 可以作为缓存,即当做内存数据库,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以拿它充当Memcached使用,作为后端MySQL/Oracle的一个缓冲层,缓存一些不经常变化但需要频繁访问的数据,比如字典表、权限表。
3. H2的3种运行模式
- <1>. 内嵌模式(Embedded Mode):使用 JDBC 的本地连接。在内嵌模式下,应用程序和数据库在同一个JVM中,通过JDBC进行连接。可以实现持久化,但同时只能有一个客户端连接。内嵌模式性能会比较好。
这是最快也是最容易的连接方式。缺点是数据库可能只在任何时候在一个虚拟机(和类加载器)中打开。与所有模式一样,支持持久性和内存数据库。对并发打开数据库的数量或打开连接的数量没有限制。
- <2>.