我對 Spring 有點陌生,并開始關注 EazyBytes 的 Udemy 教程。當他開始談論如何在Spring Boot專案中實作H2 資料庫時,我嘗試將其付諸實踐。
一開始安裝H2資料庫的Maven依賴后,無法通過控制臺訪問,因為一直提示資料庫沒有創建。閱讀一些堆疊溢位答案,發現資料庫不再自動生成,我需要降級到早期版本。這就是我所做的。所以,我pom.xml現在的樣子是這樣的:
...
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.193</version>
<scope>runtime</scope>
</dependency>
...
我還在schema.sql以下級別創建了一個application.properties:
CREATE TABLE IF NOT EXISTS `contact_msg` (
`contact_id` int AUTO_INCREMENT PRIMARY KEY,
`name` varchar(100) NOT NULL,
`mobile_num` varchar(10) NOT NULL,
`email` varchar(100) NOT NULL,
`subject` varchar(100) NOT NULL,
`message` varchar(500) NOT NULL,
`status` varchar(10) NOT NULL,
`created_at` TIMESTAMP NOT NULL,
`created_by` varchar(50) NOT NULL,
`updated_at` TIMESTAMP DEFAULT NULL,
`updated_by` varchar(50) DEFAULT NULL
);
我的application.properties樣子是這樣的:
# Some Basic Spring Boot Configurations
...
# H2 Database Config
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
嘗試訪問.../h2-console時,一切正常。在“JDBC URL”部分中,我輸入jdbc:h2:mem:testdb了 ,但是當我單擊“連接”時,這是我得到的:

如您所見,我看不到我的contact_msg表格,但在我觀看的教程中,講師可以看到并展開它。我認為這可能是 Spring Security 的問題,但我確實嘗試復制粘貼他自己的配置,但沒有發生任何變化。
這里可能有什么問題?
uj5u.com熱心網友回復:
我認為您將不得不修改 ddl-auto 屬性,如下所示:
spring.jpa.hibernate.ddl-auto=create-drop
您可以在第一次啟動應用程式時執行此操作,以便它創建您的架構,然后下次您可以將其放回“更新”
uj5u.com熱心網友回復:
似乎這個與為什么找不到資料庫有關的答案https://stackoverflow.com/a/65253359/14808001也解決了表創建問題。
(雖然我不知道為什么我需要 JDBC API,因為我沒有對資料庫進行任何查詢)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/511716.html
標籤:爪哇春天弹簧靴h2
下一篇:java.lang.NoClassDefFoundError:無法初始化類org.springframework.web.observation.HttpRequestsObservationFilt
