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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 17:11:02852parcourir

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

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

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

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!

Déclaration:
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