H2 嵌入式数据库 intellij idea <-> 源文件

H2 embedded database intellij idea <-> sources files

这里有问题但不明白在哪里,我正在尝试将 H2 数据库用作我的 java 项目的本地“嵌入式”数据库。因此,在生成我的数据库之后,我创建了 table 并使用 intellij 数据库控制台进行了示例数据,但是当我尝试连接源文件时,我的请求失败了

这是我的 intellij 条目: https://i.stack.imgur.com/F5Qo9.png

这是我的源文件条目:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Database {

    private Connection conn;
    private Statement st;

    public Database() {
        try {
            Class.forName("org.h2.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            this.conn = DriverManager.getConnection("jdbc:h2:" + "./ava", "root", "password");
            System.out.println("Status : connected");
            st = conn.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

我只是不明白为什么我无法访问我的数据,我有

org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "POSTE" non trouvée
Table "POSTE" not found; SQL statement:
SELECT * FROM POSTE [42102-200]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:453)
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
    at org.h2.message.DbException.get(DbException.java:205)
    at org.h2.message.DbException.get(DbException.java:181)
    at org.h2.command.Parser.readTableOrView(Parser.java:7628)
(...)

当我尝试请求“SELECT * FROM POSTE”时

./ava 是相对数据库路径。 .表示进程的当前工作目录。您的 IDE 和从 IDE 启动的应用程序通常具有不同的工作目录。

您需要使用绝对数据库路径(C:\path\to\db/path/to/db),或者您可以使用相对于用户主目录的路径(~/…)。

您还需要确保 IDE 中的数据库工具和您的应用程序都使用完全相同版本的 H2,因为您使用的是嵌入式数据库。当您使用具有相同嵌入式数据库文件的不同版本的 H2 时,此文件可能已损坏。 (当您使用 H2 服务器进程时,您可以使用不同版本的 H2 驱动程序安全地连接到它。)