一、基础知识:
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数据库,那么建议将嵌入模式改为混合模式,即基于嵌入模式的基础上,
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数据库,那么建议将嵌入模式改为混合模式,即基于嵌入模式的基础上,