H2数据库学习
安装
H2数据库是一个开源的关系型数据库;
H2是一个采用java语言编写的嵌入式数据库引擎,只是一个类库(即只有一个 jar 文件),可以直接嵌入到应用项目中,不受平台的限制
应用场景
可以同应用程序打包在一起发布,可以非常方便地存储少量结构化数据
可用于单元测试
可以用作缓存,即当做内存数据库
运行模式:H2有三种运行模式
内嵌模式(Embedded Mode):内嵌模式下,应用和数据库同在一个JVM中,通过JDBC进行连接。可持久化,但同时只能一个客户端连接。内嵌模式性能会比较好。
服务器模式(Server Mode):使用服务器模式和内嵌模式一样,只不过它可以跑在另一个进程里。
混合模式:第一个应用以内嵌模式启动它,对于后面的应用来说它是服务器模式跑着的。混合模式是内嵌模式和服务器模式的组合。
连接方式
以嵌入式(本地)连接方式连接H2数据库
这种连接方式默认情况下只允许有一个客户端连接到H2数据库,有客户端连接到H2数据库之后,此时数据库文件就会被锁定,那么其他客户端就无法再连接了。
连接语法:jdbc:h2:[file:][<path>]<databaseName>
例如:
jdbc:h2:~/test // 连接位于用户目录下的test数据库
jdbc:h2:file:/data/sample
jdbc:h2:file:D:/test/H2/clc // Windows模式
使用嵌入模式,不需要先启动h2的服务器,直接执行客户端即可,h2文件只能有一个进程持有。
使用TCP/IP的服务器模式(远程连接)方式连接H2数据库(推荐)
这种连接方式就和其他数据库类似了,是基于Service的形式进行连接的,因此允许多个客户端同时连接到H2数据库。
连接语法:jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>
范例:jdbc:h2:tcp://localhost/~/test
H2数据库的内存模式
连接语法:jdbc:h2:mem:<databaseName>
H2数据库被称为内存数据库,因为它支持在内存中创建数据库和表。
注意:如果使用H2数据库的内存模式,那么我们创建的数据库和表都只是保存在内存中,一旦服务器重启,那么内存中的数据库和表就不存在了。