Maison > Java > javaDidacticiel > le corps du texte

Comment éviter l'erreur « Table introuvable » dans les bases de données en mémoire H2 ?

Mary-Kate Olsen
Libérer: 2024-10-26 17:11:02
original
955 Les gens l'ont consulté

How to Prevent

Base de données en mémoire H2 : résolution de l'erreur « Table introuvable » lors de l'utilisation de « jdbc:h2:mem:

Dans H2, le Le message d'erreur "Table 'TABLE_NAME' introuvable" lors de la tentative de connexion à une base de données en mémoire indique généralement un problème de configuration. La base de données supprime la table car elle est fermée après sa création.

Pour résoudre ce problème, vous devez ajouter le paramètre suivant à votre URL de connexion JDBC :

;DB_CLOSE_DELAY=-1
Copier après la connexion

Par exemple, votre URL de connexion modifiée ressemblerait à ceci :

jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
Copier après la connexion

Explication :

Lorsque vous vous connectez à une base de données en mémoire dans H2 en utilisant la configuration par défaut (par exemple, jdbc:h2:mem:test), le contenu de la base de données est perdu lorsque la dernière connexion est fermée. vous devez définir DB_CLOSE_DELAY=-1, ce qui garantit que la base de données reste ouverte tant que la machine virtuelle Java (JVM) est en cours d'exécution. Cela vous permet de conserver le contenu de votre base de données en mémoire jusqu'à ce que vous la fermiez explicitement ou que vous mettiez fin à celle-ci. JVM.

Ce changement de configuration est documenté dans la page Fonctionnalités H2 sous la section « Bases de données en mémoire » :

Par défaut, la fermeture de la dernière connexion à une base de données ferme la base de données. Pour une base de données en mémoire, cela signifie que le contenu est perdu. Pour garder la base de données ouverte, ajoutez ;DB_CLOSE_DELAY=-1 à l'URL de la base de données. Pour conserver le contenu d'une base de données en mémoire aussi longtemps que la machine virtuelle est active, utilisez jdbc:h2:mem:test;DB_CLOSE_DELAY=-1.

En suivant cette solution, vous pouvez réussir à vous connecter à votre base de données en mémoire et travaillez avec des tables sans rencontrer l'erreur "Table Not Found".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal