簡體   English   中英

Spring Boot 中嵌入式 H2 數據庫的默認名稱是什么?

[英]What is the default name of embedded H2 database in Spring Boot?

因為我已經閱讀了 Spring Boot 中嵌入式 H2 數據庫的默認名稱應該是testdb ,但是如果我嘗試連接到 H2 控制台,我會收到以下錯誤:

未找到數據庫“mem:testdb”,要么預先創建它,要么允許遠程創建數據庫(不推薦在安全環境中使用)

僅當我在application.properties使用以下參數顯式設置名稱時才有效:

spring.datasource.url=jdbc:h2:mem:testdb

由於應用程序可以在沒有此配置的情況下連接到嵌入式數據庫,因此必須有一個不同的默認名稱。 但是自動配置的數據庫的默認名稱是什么?

如 jurez 所說,在 application.properties 中啟用 h2 控制台

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.jpa.show-sql=true

然后當您在控制台中運行應用程序時,您將看到如下內容:

H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:2f5b7da9-0cd2-4fdd-98d2-5ef5f76391bc'

然后你可以使用這個 JDBC URL 從 h2-console 連接到數據庫

http://localhost:8080/h2-console

jdbc:h2:mem:2f5b7da9-0cd2-4fdd-98d2-5ef5f76391bc

您可以通過在 application.property 文件中添加以下屬性來指定自己的名稱

spring.datasource.url=jdbc:h2:mem:testdb

請記住,因為這是一個內存數據庫,每次運行應用程序時都會刪除並重新創建它

h2 也有一個持久模式,但不推薦,您可以通過添加從以下教程Spring Boot 和內存數據庫中的 H2 中獲取的以下配置- 為什么,什么和如何?

spring.datasource.name=yourdbname
spring.datasource.driverClassName=org.h2.Driver
 
spring.datasource.initialize=false
spring.datasource.url=jdbc:h2:file:~/yourdbname;DB_CLOSE_ON_EXIT=FALSE;IFEXISTS=TRUE;DB_CLOSE_DELAY=-1;
 
spring.jpa.hibernate.ddl-auto = update

默認情況下,內存數據庫只能被它們運行的​​進程訪問。

如果你想從 H2 Console 訪問它,你需要在 application.properties 中啟用它:

spring.h2.console.enabled=true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM