小编Sue*_*ede的帖子

如何修复:嵌入式 H2 数据库“NonTransientError: Unable to read the page at position”错误?

我正在创建一个带有嵌入式 H2 数据库的 JavaFX 程序,该数据库将用于处理用户登录名和密码。使用 Intellij Ultimate,我有一个可以从工具栏运行的数据库。此外,我几乎可以肯定我有正确的 JDBC 驱动程序和 URL。数据库从 Intellij 的数据库控制台运行良好。当我尝试使用 Java 代码访问数据库时发生错误。我正在使用数据库类来处理我的数据库连接。

我收到一个JdbcSQLNonTransientException,一般错误:

非法状态异常:无法读取位置处的页面

引起:java.lang.IllegalStateException:不支持的类型 17。

我的编译器中显示的代码行,导致错误: Connection conn = DriverManager.getConnection(DB_URL, "sa", "");

我曾尝试在任何地方找到类似的问题,但找不到相关问题。我已尝试尽可能简化我的课程以隔离问题并简单地建立连接。我删除了我的项目并尝试重新开始。

DatabaseManager产生问题的简化类:

public class DatabaseManager {
    static final String JDBC_DRIVER = "org.h2.Driver";
    static final String DB_URL = "jdbc:h2:D:/trant/Documents/Java Practice/Order A Car2/res/userDatabase";

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("org.h2.Driver");
        Connection conn = DriverManager.getConnection(DB_URL, "sa", "");
        Statement st = conn.createStatement();
        st.executeUpdate("SELECT * FROM JOBS");
        conn.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望连接到 H2 数据库并从“JOBS”表中检索数据。代码未编译时出现上述错误。

编辑:如果我使用 …

java sql database h2

13
推荐指数
2
解决办法
1万
查看次数

标签 统计

database ×1

h2 ×1

java ×1

sql ×1