H2数据库笔记

本文介绍了H2数据库,一个轻量级、开源的Java嵌入式数据库,适合存储少量结构化数据,常用于单元测试。H2以其快速启动、支持多种服务模式和数据库连接方式而备受青睐,同时提供了Web客户端。文章还对比了H2与其他开源数据库,讨论了其在多线程环境下的性能优化,并探讨了如何在项目中配置和使用H2。
摘要由CSDN通过智能技术生成
一、基础知识:
1、h2是一个开源的纯java编写的轻量级数据库,是一个用Java开发的嵌入式数据库,只有一个jar文件,可以直接嵌入到应用项目中。
      h2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据,它的另一个用途是用于单元测试。
           启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。h2的第三个用处是作为缓存,作为NoSQL的一个补充。
    官方网址:http://www.h2database.com
        CSDN的使用参考例子:http://blog.csdn.net/qq_25033135/article/details/44921587


    2、与h2一样作为开源的数据库还有Derby、HSQLDB、MySQL、PostgreSQL、SQLite等。其中h2和HSQLDB类似,十分适合作为嵌入式数据库使用,
   其它的数据库大部分都需要安装独立的客户端和服务器端。所谓嵌入式数据库,就是直接在项目中引入h2的jar包,通过java代码
   启动h2的服务,项目即可使用h2的数据库功能,而不需要额外的安装h2服务器。故h2非常适合作为桌面软件的嵌入式数据库,用户
   只需要安装和运行桌面软件即可,而无须额外处理数据库的服务问题。



3、h2的数据库服务,可通过安装服务端软件(windows和linux均支持)来提供数据库服务,单也可以直接通过h2.jar包直接通过java代码
   创建服务,从而提供相应的数据库服务。通常使用h2.jar包形式来提供服务,一般都是便于用作嵌入式数据库服务时使用。如果作为普通
   的数据库服务,通常都是安装服务端软件。
   
   
   
4、h2支持多种服务模式,在启动的时候就需要指定服务模式,并且不同模式下客户端的url连接会有区别。h2数据库总体来说分为两类:
   (1)嵌入模式(本地连接方式):
这种连接方式默认情况下只允许有一个客户端连接到H2数据库,有客户端连接到H2数据库之后,此时数据库文件就会被锁定,
    那么其他客户端就无法再连接了。使用嵌入模式,不需要先启动h2的服务器,直接执行客户端即可。
jdbc的url连接格式:
jdbc:h2:[file:][<path>]<databaseName>
例如:
    jdbc:h2:~/test  //连接位于当前系统用户目录下的test数据库(如果数据库不存在会自动创建)
    jdbc:h2:file:/data/sample  //连接/data目录下的sample数据库(如果数据库不存在会自动创建)
    jdbc:h2:file:E:/H2/gacl   //连接E:/H2目录下的gacl数据库(如果数据库不存在会自动创建)

   (2)服务器模式(远程连接方式):
    这种连接方式就和其他数据库类似了,是基于Service的形式进行连接的,因此允许多个客户端同时连接到H2数据库。
使用服务器模式,必须先启动h2的服务器,客户端才能连接并执行sql脚本。
jdbc的url连接格式(TCP连接):
jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>
例如:
jdbc:h2:tcp://localhost/~/test

补充说明:
如果再细分h2的连接模式,还可以分析内存模式,TCL服务器模式,SSL服务器模式,混合模式等。
具体参考图片 h2不同模式的url连接.png



5、如果项目中使用h2数据库的嵌入模式,并且可能会在多线程中操作h2数据库,那么建议将嵌入模式改为混合模式,即基于嵌入模式的基础上,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值