Fatal: Ungültiger Wert für Parameter "Timezone": "Asien/Saigon"
Posted: 12 Apr 2025, 15:47
Während der Backend -Entwicklung für eine Java -Anwendung habe ich eine postgresql Datenbankverbindung mit JDBC in der DatabaseConnection.java eingerichtet. Ich habe dann eine einfache Backend -App durchgeführt, um die Verbindung über userDao.java zu testen. Nach einem erfolgreichen Build habe ich das Programm ausgeführt, aber auf den folgenden Fehler gestoßen: < /p>
Ich habe die TimeZone direkt in meinem DBMS mit dem Befehlsanzeigen Timezone; überprüft und korrekt zurückgegeben Asien/HO_Chi_Minh - Eine von Postgresql unterstützte Zeitzone. Bitte teilen Sie eine Lösung, wenn Sie mit diesem Problem vertraut sind! Ich vermute, dass das Problem auf der Seite Oracle Cloud Server liegt, auf der mein DBMS gehostet wird.
Code: Select all
"C:\Program Files\Java\jdk-23\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.3.2\lib\idea_rt.jar=59302:C:\Program Files\JetBrains\IntelliJ IDEA 2024.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\ADMIN\.m2\repository\org\postgresql\postgresql\42.5.0\postgresql-42.5.0.jar;C:\Users\ADMIN\.m2\repository\org\checkerframework\checker-qual\3.5.0\checker-qual-3.5.0.jar -p D:\phdoanh\AniShelf\backend\target\classes -m com.library.backend/com.library.backend.BackendApplication
Starting Backend Application...
org.postgresql.util.PSQLException: FATAL: invalid value for parameter "TimeZone": "Asia/Saigon"
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676)
at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2788)
at org.postgresql.core.v3.QueryExecutorImpl.(QueryExecutorImpl.java:174)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:290)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
at org.postgresql.jdbc.PgConnection.(PgConnection.java:247)
at org.postgresql.Driver.makeConnection(Driver.java:434)
at org.postgresql.Driver.connect(Driver.java:291)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:682)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:230)
at com.library.backend@1.0.0-SNAPSHOT/com.library.backend.dao.DatabaseConnection.getConnection(DatabaseConnection.java:14)
at com.library.backend@1.0.0-SNAPSHOT/com.library.backend.dao.UserDAO.getFirstUserName(UserDAO.java:13)
at com.library.backend@1.0.0-SNAPSHOT/com.library.backend.BackendApplication.main(BackendApplication.java:15)
No users found in the database.
Hello John
Process finished with exit code 0
Code: Select all
DatabaseConnection.java
Code: Select all
package com.library.backend.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection {
private static final String URL = "jdbc:postgresql://217.142.224.197:5432/aniself";
private static final String USER = "****";
private static final String PASSWORD = "*******";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
< /code>
UserDAO.java
Code: Select all
package com.library.backend.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDAO {
// Retrieves the first user name from a table named 'users'
public String getFirstUserName() {
String sql = "SELECT name FROM users LIMIT 1;";
try (Connection conn = DatabaseConnection.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getString("name");
}
} catch (SQLException e) {
e.printStackTrace();
}
return null; // Returns null if no user is found or on error
}
}