Bei Verwendung einer H2-In-Memory-Datenbank mit der URL „jdbc:h2:mem:test“: Benutzer können beim Versuch, Daten aus einer zuvor erstellten Tabelle auszuwählen, auf die Fehlermeldung „Tabelle ‚PERSON‘ nicht gefunden“ stoßen. Dieser Fehler tritt auf, weil H2 standardmäßig die Datenbankverbindung nach der Tabellenerstellung mithilfe der hbm2ddl-Funktion von Hypernate schließt.
Um dieses Problem zu beheben und den Datenbankinhalt beizubehalten, ändern Sie die Verbindungs-URL in das folgende Format:
<code class="text">jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</code>
Dieser Parameter weist H2 an, die In-Memory-Datenbank geöffnet zu halten, solange die Java Virtual Machine (JVM) läuft. Durch das Hinzufügen eines Semikolons (;) anstelle eines Doppelpunkts (:) zwischen der URL und dem Parameter können Sie zusätzliche Parameter angeben.
In der Dokumentation heißt es: „Das Schließen der letzten Verbindung zu einer Datenbank schließt die Datenbank.“ Bei einer In-Memory-Datenbank bedeutet dies, dass der Inhalt verloren geht.“ Durch Festlegen des Parameters DB_CLOSE_DELAY=-1 stellen Sie sicher, dass die Datenbank geöffnet bleibt, bis die JVM beendet wird, und die Daten auch nach dem Schließen der Verbindung erhalten bleiben.
Das obige ist der detaillierte Inhalt vonWarum tritt bei der H2-In-Memory-Datenbank der Fehler „Tabelle nicht gefunden' auf und wie kann man ihn beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!