Home > Java > javaTutorial > body text

How to Prevent \'Table Not Found\' Error in H2 In-Memory Databases?

Mary-Kate Olsen
Release: 2024-10-26 17:11:02
Original
858 people have browsed it

How to Prevent

H2 In-Memory Database: Resolving "Table Not Found" Error When Using "jdbc:h2:mem:

In H2, the error message "Table 'TABLE_NAME' not found" when attempting to connect to an in-memory database usually indicates a configuration issue. The database is discarding the table because it's closed after its creation.

To resolve this issue, you need to add the following parameter to your JDBC connection URL:

;DB_CLOSE_DELAY=-1
Copy after login

For example, your modified connection URL would look like this:

jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
Copy after login

Explanation:

When you connect to an in-memory database in H2 using the default configuration (e.g., jdbc:h2:mem:test), the database content is lost when the last connection is closed. To prevent this, you need to set DB_CLOSE_DELAY=-1, which ensures that the database remains open as long as the Java Virtual Machine (JVM) is running. This allows you to maintain the contents of your in-memory database until you explicitly close it or terminate the JVM.

This configuration change is documented in the H2 Features page under the "In-Memory Databases" section:

By default, closing the last connection to a database closes the database. For an in-memory database, this means the content is lost. To keep the database open, add ;DB_CLOSE_DELAY=-1 to the database URL. To keep the content of an in-memory database as long as the virtual machine is alive, use jdbc:h2:mem:test;DB_CLOSE_DELAY=-1.

By following this solution, you can successfully connect to your in-memory database and work with tables without encountering the "Table Not Found" error.

The above is the detailed content of How to Prevent \'Table Not Found\' Error in H2 In-Memory Databases?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!