為什么要使用H2數(shù)據(jù)庫
H2數(shù)據(jù)庫是可以嵌入到JAVA項目中的,因為只需要導(dǎo)入一個jar包即可,所以非常的方便。
項目中導(dǎo)入H2
將H2的jar包放到classpath里即可,我是用的maven,maven的配置如下
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.192</version>
</dependency>
版本我用的現(xiàn)在的最新版
然后需要修改JDBC的配置,主要是下面兩個屬性跟其他數(shù)據(jù)庫(如MySQL)不同,其他都一樣
<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.url">jdbc:h2:tcp://localhost/~/test</property>
上面jdbc:h2:tcp://localhost/~/test中的test是數(shù)據(jù)庫的名字,H2默認(rèn)如果數(shù)據(jù)庫不存在的話,會自動創(chuàng)建一個數(shù)據(jù)庫的。
我用的是hibernate,所以還要修改一下Dialect的配置
<property name="dialect">org.hibernate.dialect.H2Dialect</property>
到這為止,項目里面就可以使用H2了。
使用WEB控制臺管理H2數(shù)據(jù)庫
建表、建數(shù)據(jù)的話,可以通過H2自帶的WEB控制臺來做(當(dāng)然H2也提供命令行的方式)
WEB控制臺可以通過命令行來啟動,但為了方便,可以從H2官網(wǎng)上下載一個安裝包,運行里面的bat文件直接啟動。

這是H2安裝完以后bin目錄下的內(nèi)容,運行h2w.bat打開web控制臺

點Connect
之后的玩法就跟其他數(shù)據(jù)庫差不多了,可以點擊下面的Sample SQL Script部分來感受一下建表和插入數(shù)據(jù)等,help命令,可以顯示所有的命令。關(guān)于命令的詳細可以去H2官網(wǎng)里面看。

關(guān)于H2 數(shù)據(jù)庫的連接方式
連接H2數(shù)據(jù)庫有以下方式
- 服務(wù)式 (Server)
- 嵌入式(Embedded)
- 內(nèi)存(Memory)
還沒太仔細研究,到目前的理解:
嵌入式的話,就是這個H2數(shù)據(jù)庫只能給一個應(yīng)用使用,連接是有排他機制的。當(dāng)一個應(yīng)用用嵌入式連接方式連接了以后,其他的應(yīng)用就不能再連接了。
服務(wù)式的話,就跟MySQL、Oracle這種數(shù)據(jù)庫差不多,服務(wù)器單獨運行,可以多個客戶端同時連接。
內(nèi)存方式,顧名思義,數(shù)據(jù)僅保持在內(nèi)存中
嵌入式和服務(wù)式主要體現(xiàn)在JDBC連接的URL方式不同,上面例子中給的是服務(wù)式的。
- 服務(wù)式 (Server)
jdbc:h2:tcp://localhost/~/test - 嵌入式(Embedded)
jdbc:h2:~/test - 內(nèi)存式(Memory)
jdbc:h2:tcp://localhost/mem:test
這個不用記,在H2控制臺的Login畫面選擇連接方式,就會生成不同的URL