我知道那里有類似的問題,但我從谷歌找到并檢查的少數問題似乎對我沒有任何幫助。所以,我重新安裝了 Windows,然后從 Github 匯入了我的 Spring 專案。我直接看到的一個問題是我的pom.xml:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>ValComp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ValComp</name>
<description>Composite value calculator.</description>
<properties>
<java.version>16</java.version>
</properties>
我現在安裝的 Java 版本是 17,所以我嘗試將 17 放在檔案的這一行中,但是在 Project>Properties 中,JRE 仍然參考了 16,而 17 無處可見。除此之外,我的主要問題是當我嘗試將它作為 Spring Boot 應用程式運行時,出現以下錯誤:
[2m2021-10-13 20:35:18.867[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36mcom.valcomp.ValCompApplication [0;39m [2m:[0;39m No active profile set, falling back to default profiles: default
[2m2021-10-13 20:35:19.277[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Bootstrapping Spring Data JPA repositories in DEFAULT mode.
[2m2021-10-13 20:35:19.286[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Finished Spring Data repository scanning in 4 ms. Found 0 JPA repository interfaces.
[2m2021-10-13 20:35:19.623[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat initialized with port(s): 8080 (http)
[2m2021-10-13 20:35:19.630[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36mo.apache.catalina.core.StandardService [0;39m [2m:[0;39m Starting service [Tomcat]
[2m2021-10-13 20:35:19.630[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36morg.apache.catalina.core.StandardEngine [0;39m [2m:[0;39m Starting Servlet engine: [Apache Tomcat/9.0.52]
[2m2021-10-13 20:35:19.720[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36mo.a.c.c.C.[Tomcat].[localhost].[/] [0;39m [2m:[0;39m Initializing Spring embedded WebApplicationContext
[2m2021-10-13 20:35:19.720[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 824 ms
[2m2021-10-13 20:35:19.850[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36mo.hibernate.jpa.internal.util.LogHelper [0;39m [2m:[0;39m HHH000204: Processing PersistenceUnitInfo [name: default]
[2m2021-10-13 20:35:19.888[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36morg.hibernate.Version [0;39m [2m:[0;39m HHH000412: Hibernate ORM core version 5.4.32.Final
[2m2021-10-13 20:35:19.987[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36mo.hibernate.annotations.common.Version [0;39m [2m:[0;39m HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
[2m2021-10-13 20:35:20.063[0;39m [32m INFO[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36mcom.zaxxer.hikari.HikariDataSource [0;39m [2m:[0;39m HikariPool-1 - Starting...
[2m2021-10-13 20:35:21.182[0;39m [31mERROR[0;39m [35m11792[0;39m [2m---[0;39m [2m[ main][0;39m [36mcom.zaxxer.hikari.pool.HikariPool [0;39m [2m:[0;39m HikariPool-1 - Exception during pool initialization.
org.postgresql.util.PSQLException: FATAL: database "valholder" does not exist
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2552) ~[postgresql-42.2.23.jar:42.2.23]
at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2664) ~[postgresql-42.2.23.jar:42.2.23]
at org.postgresql.core.v3.QueryExecutorImpl.<init>(QueryExecutorImpl.java:147) ~[postgresql-42.2.23.jar:42.2.23]
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:273) ~[postgresql-42.2.23.jar:42.2.23]
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:51) ~[postgresql-42.2.23.jar:42.2.23]
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:223) ~[postgresql-42.2.23.jar:42.2.23]
at org.postgresql.Driver.makeConnection(Driver.java:465) ~[postgresql-42.2.23.jar:42.2.23]
at org.postgresql.Driver.connect(Driver.java:264) ~[postgresql-42.2.23.jar:42.2.23]
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar:na]
這很奇怪,因為代碼在升級之前就可以作業,而且它應該自己創建該資料庫。這是我的application.properties檔案:
spring.datasource.url=jdbc:postgresql://localhost:5432/valholder
spring.datasource.username=postgres
spring.datasource.password=slur123~
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.format_sql=true
server.error.include-message=always
順便說一句,檔案中的登錄憑據在 SQL Shell 中作業,所以這不是問題。我寧愿不從零開始一個新專案并讓這個專案運行,因為它會 1)。教我如何處理這些問題;2)。有一些 Github 連續性。:)
任何想法都虛心接受。
uj5u.com熱心網友回復:
它應該自己創建該資料庫
它實際上可能并不意味著創建實際的資料庫,而是創建所有表等等(使用 Hibernate 和hibernate.ddl-auto)。
誠然,您使用的用戶名是postgres,因此它也可能創建資料庫,但是在使用該 JDBC URL 初始化您的資料源之前需要一種特殊的機制(因為它包含資料庫名稱并將嘗試連接它最初)。
有可能有這樣一個額外的機制,但不太可能。(該機制可能必須假設postgres維護資料庫用于與應用程式資料源無關的初始 JDBC 連接,從那里創建資料庫,然后才重新連接用于初始化資料源的 JDBC URL。)
您的解決方案是提前創建您的資料庫(例如使用psql或 pgAdmin)。使用非管理員用戶也可能是更好的做法:只需創建一個不同的用戶并使其成為該新資料庫的所有者。(如果您使用 pgAdmin 創建該用戶,請記住啟用“可以登錄”,我不確定默認情況下是否啟用。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/313924.html
標籤:爪哇 春天 PostgreSQL 弹簧靴
上一篇:匹配具有多個條件的行陣列
下一篇:為主題插入重復的行
