DB - H2
-> 官网:http://www.h2database.com/html/main.html
特点
- 支持内存模式,关闭连接后数据库将被清空
- 文件体积小,安装、启动非常简单
- 与 SQLit 相比较,读操作更快,但是在连接、写操作性能都不如 SQLite。
应用场景
- 单元测试
- 快速搭建应用
概述
H2本质上是一个Java程序,实现了一个简单的数据库系统。 而数据库的最重要的功能,就是存储数据。 回到H2上来,根据启动参数的不同,数据可以存在内存中,也可以存成文件。
那怎么使用数据库呢?分两个方面:
- 一是启动数据库。
- 二是连接上数据库,查询数据。
以Windows+MySQL为例:
- 1,需要在电脑上下载安装MySQL Server,然后启动
mysqld
服务。 - 2.1,通过MySQL Client,或者其他数据库客户端软件,填写正确的host+username/password,可以通过SQL访问数据库。
- 2.2,在 Java 应用程序中,通过 MySQL driver,填写正确的 jdbc url,可以实现数据库读写。
回到H2上来,基本流程是一样的。但是,因为它是如此之轻量级,所以在大多数使用场景,第一步可以省略。或者说,背地里它把第一步和第二步合并起来了,让你感觉第一步被省略了。
比如,我写一个单元测试,在IDE里面,使用纯内存的H2,把依赖都配好,配置代码也写好了,直接点一下,就跑起来了。其实,背后,IDE根据你的配置在启动测试前先启动了H2数据库。
安装
以Windows系统为例,推荐两种安装/使用方式:
- 本地安装H2,(官网下载包,然后安装),然后浏览器打开H2 Console进行数据库管理(CRUD)
- IDE安装,IntelliJ高级版,在Database区域,可以配置H2 Driver,这样App就可以连数据库了。
连接方式
笔者把常见的连接方式分了2种:
- Local / Embeded
- Remote
本地连接
本地起服务,本地使用。
远程连接
本地起好服务,(支持)远程连接使用。 (本地起好了服务,本地localhost连可以吗?当然可以)
jdbc范例:jdbc:h2:tcp://localhost/~/test
参考 -> http://www.h2database.com/html/tutorial.html#using_server
存储方式
笔者把常见的存储方式分了2种:
- In Memory
- File
纯内存
没有persistence
jdbc:h2:mem:test_mem
![[h2_connection_jdbc_mem.PNG]]
文件
有persistence
jdbc:h2:file:F:/H2/db1
![[h2_connection_jdbc_file.PNG]]
参考 -> http://www.h2database.com/html/features.html#connection_modes
工具
- H2 Web Console
- IDE
参考
- https://zhuanlan.zhihu.com/p/142758091
- https://www.csdn.net/tags/NtDacgysMzYyOS1ibG9n.html