Heim  >  Artikel  >  Java  >  Wie kann der Fehler „Tabelle nicht gefunden' in H2-In-Memory-Datenbanken verhindert werden?

Wie kann der Fehler „Tabelle nicht gefunden' in H2-In-Memory-Datenbanken verhindert werden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 17:11:02959Durchsuche

How to Prevent

H2 In-Memory-Datenbank: Behebung des Fehlers „Tabelle nicht gefunden“ bei Verwendung von „jdbc:h2:mem:

In H2 ist die Die Fehlermeldung „Tabelle ‚TABLE_NAME‘ nicht gefunden“ beim Versuch, eine Verbindung zu einer In-Memory-Datenbank herzustellen, weist normalerweise auf ein Konfigurationsproblem hin. Die Datenbank verwirft die Tabelle, weil sie nach ihrer Erstellung geschlossen wird.

Um dieses Problem zu beheben, Sie müssen den folgenden Parameter zu Ihrer JDBC-Verbindungs-URL hinzufügen:

;DB_CLOSE_DELAY=-1

Ihre geänderte Verbindungs-URL würde beispielsweise so aussehen:

jdbc:h2:mem:test;DB_CLOSE_DELAY=-1

Erklärung:

Wenn Sie mit der Standardkonfiguration (z. B. jdbc:h2:mem:test) eine Verbindung zu einer In-Memory-Datenbank herstellen, geht der Datenbankinhalt verloren, wenn die letzte Verbindung geschlossen wird. Um dies zu verhindern, Sie müssen DB_CLOSE_DELAY=-1 festlegen, um sicherzustellen, dass die Datenbank geöffnet bleibt, solange die Java Virtual Machine (JVM) ausgeführt wird. Dadurch können Sie den Inhalt Ihrer In-Memory-Datenbank beibehalten, bis Sie sie explizit schließen oder beenden JVM.

Diese Konfigurationsänderung ist auf der Seite „H2-Funktionen“ im Abschnitt „In-Memory-Datenbanken“ dokumentiert:

Standardmäßig wird die Datenbank geschlossen, wenn die letzte Verbindung zu einer Datenbank geschlossen wird. Bei einer In-Memory-Datenbank bedeutet dies, dass der Inhalt verloren geht. Um die Datenbank geöffnet zu halten, fügen Sie ;DB_CLOSE_DELAY=-1 zur Datenbank-URL hinzu. Um den Inhalt einer In-Memory-Datenbank zu behalten, solange die virtuelle Maschine aktiv ist, verwenden Sie jdbc:h2:mem:test;DB_CLOSE_DELAY=-1.

Wenn Sie dieser Lösung folgen, können Sie erfolgreich eine Verbindung zu Ihrer herstellen Speichern Sie die In-Memory-Datenbank und arbeiten Sie mit Tabellen, ohne dass der Fehler „Tabelle nicht gefunden“ auftritt.

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Tabelle nicht gefunden' in H2-In-Memory-Datenbanken verhindert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn