日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

H2数据库攻略

發布時間:2024/9/30 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 H2数据库攻略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

H2是一個開源的嵌入式數據庫引擎,采用java語言編寫,不受平臺的限制,同時H2提供了一個十分方便的web控制臺用于操作和管理數據庫內容。H2還提供兼容模式,可以兼容一些主流的數據庫,因此采用H2作為開發期的數據庫非常方便。

Features

? H2 Derby HSQLDB MySQL PostgreSQL
Pure Java Yes Yes Yes No No
Memory Mode Yes Yes Yes No No
Encrypted Database Yes Yes Yes No No
ODBC Driver Yes No No Yes Yes
Fulltext Search Yes No No Yes Yes
Multi Version Concurrency Yes No Yes Yes Yes
Footprint (jar/dll size) ~1 MB ~2 MB ~1 MB ~4 MB ~6 MB

See also the?detailed comparison.


一、引入Maven依賴

在maven中定義H2數據庫的版本屬性

<properties><h2.version>1.3.172</h2.version></properties>ataNode對象}

添加H2依賴

<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><version>${h2.version}</version><scope>test</scope></dependency>

二、運行方式

1、在內存中運行

數據庫只在內存中運行,關閉連接后數據庫將被清空,適合測試環境

連接字符串:

jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1

如果不指定DBName,則以私有方式啟動,只允許一個連接

2、嵌入式

數據庫持久化存儲為單個文件

連接字符串:

jdbc:h2:file:~/.h2/DBName;AUTO_SERVER=TRUE

~/.h2/DBName表示數據庫文件的存儲位置,如果第一次連接則會自動創建數據庫

3、服務模式

H2支持三種服務模式:

1.web server:此種運行方式支持使用瀏覽器訪問H2 Console

2.TCP server:支持客戶端/服務器端的連接方式

3.PG server:支持PostgreSQL客戶端

啟動tcp服務連接字符串示例:

jdbc:h2:tcp://localhost/~/test 使用用戶主目錄

jdbc:h2:tcp://localhost//data/test 使用絕對路徑

4、連接字符串參數

1.DB_CLOSE_DELAY:要求最后一個正在連接的連接斷開后,不要關閉數據庫

2.MODE=MySQL:兼容模式,H2兼容多種數據庫,該值可以為:DB2、Derby、HSQLDB、MSSQLServer、MySQL、Oracle、PostgreSQL

3.AUTO_RECONNECT=TRUE:連接丟失后自動重新連接

4.AUTO_SERVER=TRUE:啟動自動混合模式,允許開啟多個連接,該參數不支持在內存中運行模式

5.TRACE_LEVEL_SYSTEM_OUT、TRACE_LEVEL_FILE:輸出跟蹤日志到控制臺或文件, 取值0為OFF,1為ERROR(默認值),2為INFO,3為DEBUG

6.SET TRACE_MAX_FILE_SIZE mb:設置跟蹤日志文件的大小,默認為16M

5、啟動服務模式,打開H2 Console web頁面

啟動服務,在命令行中執行

java -cp h2*.jar org.h2.tools.Server

執行如下命令,獲取選項列表及默認值

java -cp h2*.jar org.h2.tools.Server -?

常見的選項如下:

-web:啟動支持H2 Console的服務

-webPort <port>:服務啟動端口,默認為8082

-browser:啟動H2 Console web管理頁面

-tcp:使用TCP server模式啟動

-pg:使用PG server模式啟動

此外,使用maven也可以啟動H2服務

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>1.0.0</modelVersion><version>1.0.0</version><groupId>groupid</groupId><artifactId>h2-console</artifactId><name>H2 Console</name><packaging>pom</packaging><properties><h2.version>1.3.172</h2.version></properties><dependencies><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><version>${h2.version}</version><scope>runtime</scope></dependency></dependencies><build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><executions><execution><goals><goal>java</goal></goals></execution></executions><configuration><mainClass>org.h2.tools.Server</mainClass><arguments><argument>-web</argument><argument>-webPort</argument><argument>8090</argument><argument>-browser</argument></arguments></configuration></plugin></plugins></build></project>

在命令行中執行如下命令啟動H2 Console

mvn exec:java

或者建立一個bat文件

@echo off call mvn exec:java pause

此操作相當于執行了如下命令:

java -jar h2-1.3.168.jar -web -webPort 8090 -browser

三、應用程序配置

1、Properties配置

java應用程序關于數據庫的Properties配置文件示例如下:

#h2 database settings jdbc.driver=org.h2.Driver jdbc.url=jdbc:h2:file:~/.h2/quickstart;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1 jdbc.username=sa jdbc.password=

#connection pool settings
jdbc.pool.maxIdle=5
jdbc.pool.maxActive=40

2、初始化數據庫

(1)、在Maven中初始化數據庫

可以創建一個Profile,專門用于初始化數據庫。在maven中可以通過maven-antrun-plugin執行ant任務,在ant任務中使用sql標簽可以執行sql腳本文件,配置示例如下:

<profile><id>refresh-db</id><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><configuration><target><property file="src/main/resources/application.properties" /><sql driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" password="${jdbc.password}" οnerrοr="continue" encoding="${project.build.sourceEncoding}"><classpath refid="maven.test.classpath" /><transaction src="src/main/resources/sql/h2/schema.sql"/><transaction src="src/test/resources/data/h2/import-data.sql"/></sql></target></configuration></plugin></plugins></build></profile>

執行如下命令調用該Profile,初始化數據庫

mvn antrun:run -Prefresh-db

(2)、在Spring中初始化數據庫

Spring Profile和maven profile一樣,也可以模擬不同的開發環境。在Spirng中可以通過jdbc:initialize-database初始化數據庫,配置示例如下

<beans profile="test"><context:property-placeholder ignore-resource-not-found="true"location="classpath*:/application.properties,classpath*:/application.test.properties" /> <!-- Spring Simple連接池 --><bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource"><property name="driverClass" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean><!-- 初始化數據表結構 --><jdbc:initialize-database data-source="dataSource" ignore-failures="ALL"><jdbc:script location="classpath:sql/h2/schema.sql" /><jdbc:script location="classpath:data/h2/import-data.sql" encoding="UTF-8"/></jdbc:initialize-database></beans>

四、sql語法圖

1、SELECT

2、INSERT

3、UPDATE

4、DELETE

5、BACKUP

6、EXPLAIN

7、MERGE

8、RUNSCRIPT

運行sql腳本文件

9、SCRIPT

根據數據庫創建sql腳本

10、SHOW

11、ALTER INDEX RENAME

12、ALTER SCHEMA RENAME

13、ALTER SEQUENCE

14、ALTER TABLE

增加列

增加約束

修改列

刪除列

刪除序列

15、ALTER USER

修改用戶名

修改用戶密碼

16、ALTER VIEW

17、COMMENT

18、CREATE CONSTANT

19、CREATE INDEX

20、CREATE ROLE

21、CREATE SCHEMA

22、CREATE SEQUENCE

23、CREATE TABLE

24、CREATE TRIGGER

25、CREATE USER

26、CREATE VIEW

27、DROP

28、GRANT RIGHT授權

給schema授權

復制角色的權限

29、REVOKE RIGHT移除授權

移除角色具有的權限

30、ROLLBACK

從某個還原點(savepoint)回滾

回滾事務

創建savepoint

轉自:http://www.uml.org.cn/sjjm/201403141.asp

總結

以上是生活随笔為你收集整理的H2数据库攻略的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。