Spring Boot 使用 H2 數據庫的控制台(Console)


如果你希望在 Spring Boot 啟用 H2 數據庫的話,這篇文章適合你進行了解。

概述

在這個指南中,我們將會考慮如何在  Spring Boot 中使用 H2 數據庫。

與其他數據庫相似,Spring Boot 生態系統中能夠完全支持 H2 數據庫

依賴(Dependencies)

讓我們首先需要定義 H2 數據庫依賴:https://search.maven.org/search?q=g:com.h2database

同時我們還需要使用 spring-boot-starter-data-jpa 依賴:https://search.maven.org/search?q=a:spring-boot-starter-data-jpa

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-jpa</artifactId>
     <version> 2.1 . 4 .RELEASE</version>
</dependency>
<dependency>
     <groupId>com.h2database</groupId>
     <artifactId>h2</artifactId>
     <scope>runtime</scope>
     <version> 1.4 . 199 </version>
</dependency>

與其他的 Spring Boot 管理相似,通常你不需要為你使用的 Spring Boot 指定版本號。

數據庫配置

在默認的情況下,Spring Boot 將會配置 H2 數據庫使用 sa 為用戶名,用戶名密碼為空

當然你可以可以通過修改 application.properties  文件中配置文件來為你的 H2 數據庫指定登錄的用戶名和密碼。

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

如果你使用的 H2 基於內存的數據庫的話,你所有存儲在內存中的數據將會在你重新啟動服務器的時候完全丟失。

如果你希望避免這個情況的話,你可以使用基於文件存儲的數據庫,你可以通過下面的參數修改為基於文件使用的數據庫,修改 spring.datasource.url: 參數為

spring.datasource.url=jdbc:h2:file:/data/demo

文件系統使用的路徑為絕對路徑,有關 H2 數據庫配置的方法,請參考 http://www.h2database.com/html/features.html#connection_modes 頁面中的內容。

數據庫選項

Spring Boot 整合 H2 提供的增刪改查(CRUD)與普通數據庫的增刪改查是相似的。請參考 https://www.baeldung.com/persistence-with-spring-series 頁面中獲得更多的有關數據持久化相關的信息。

在這里,請將 data.sql 文件添加到 src/main/resources 目錄下面:

DROP TABLE IF EXISTS billionaires;
 
CREATE TABLE billionaires (
   id INT AUTO_INCREMENT  PRIMARY KEY ,
   first_name VARCHAR (250) NOT NULL ,
   last_name VARCHAR (250) NOT NULL ,
   career VARCHAR (250) DEFAULT NULL
);
 
INSERT INTO billionaires (first_name, last_name, career) VALUES
   ( 'Aliko' , 'Dangote' , 'Billionaire Industrialist' ),
   ( 'Bill' , 'Gates' , 'Billionaire Tech Entrepreneur' ),
   ( 'Folrunsho' , 'Alakija' , 'Billionaire Oil Magnate' );

Spring Boot 將會在系統應用程序啟動后,將會自動選擇  data.sql 文件然后在我們的 H2 數據庫中進行配置。

這種方式是對使用的數據庫進行進行測試的比較好的辦法。

訪問 H2 控制台

H2 數據庫有一個嵌入式 GUI 控制台能夠讓你對數據庫的內容進行查詢和運行  SQL。

在默認情況下,H2 的控制台沒有嵌入到 Spring 中。所以你需要對這個控制台工具進行啟用,請在 application.properties 文件中添加下面的參數:

spring.h2.console.enabled= true

在啟用上面的參數后,如果你啟用了 Spring Boot 應用程序,你可以導航到 http://localhost:8080/h2-console界面中,在這個界面中首先將會顯示登錄界面。

在登錄界面中適用的登錄信息是你在 application.properties 文件中指定的登錄信息。

一旦你成功連接到控制台后,我們將會看到一個完整的控制台界面。

在這個完整的控制台界面中的作出,你將會看到 H2 數據庫中所有的數據表,同時還包含有一個文本對話框中包含了可以運行的 SQL 查詢:

在這個 Web 的控制台界面中,具有自動完成 SQL 關鍵字的功能。這個功能能夠讓給控制台更加輕量的運行並且具有 SQL 關鍵字幫助的功能,能夠讓你在文本對話框中直接運行 SQL 腳本。

更進一步,我們將會在 application.properties 中配置更多的參數能夠滿足你的對當前項目的需求:

spring.h2.console.path=/h2-console
spring.h2.console.settings.trace= false
spring.h2.console.settings.web-allow-others= false

在上面的代碼中,我們設置了 H2 的控制台訪問控制台的 URL 為: /h2-console,這個鏈接是針對你當前項目運行的服務器地址和端口的相對地址。

例如你當前服務器運行的 URL 為  http://localhost:9001 那么 H2 控制台訪問的地址為  http://localhost:9001/h2-console

同時我們設置了 spring.h2.console.settings.trace 參數為 false,這樣我們能夠避免在系統控制台中輸出 trace 級別的日志信息。

通過設置 spring.h2.console.settings.web-allow-others=false 參數,我們能夠禁止遠程 Web 訪問 H2 數據庫的信息。

結論

H2 是完全與 Spring Boot 兼容的,通過這篇文章,你能夠了解如何使用 H2 控制台來管理整治運行的數據庫。

有關完整的代碼情況參考我們提交到 GitHub 中的代碼示例:https://github.com/cwiki-us-demo/java-tutorials/tree/master/persistence-modules/spring-boot-persistence-h2-console 中的內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM