无法调用“java.sql.Connection.getMetaData()”,因为“<parameter2>”为空

时间:2021-01-24 22:37:16

标签: java intellij-idea h2

嗨,我正在使用 H2 数据库进行在线教程。

我下载了 H2 数据库 jar 文件并将其放入一个 lib 文件中,如下所示:

Click here

我还在我的项目结构中创建了一个库,如下所示:

Click here

要测试的主要代码:

public class Main {

    public static void main(String[] args) throws SQLException {
    // write your code here
        Server.main();
        System.out.println("DB Launched");
    }
}

然后我创建了一个 db 文件夹 - 当我运行我的应用程序时,我在我的项目解决方案中为“JDBC url”输入了 DB 文件夹的路径。我遵循了课程的所有说明。

然后当我连接时出现以下错误(在 Web 应用程序中):

See error

Cannot invoke "java.sql.Connection.getMetaData()" because "<parameter2>" is null
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.getMetaData()" because "<parameter2>" is null
    at org.h2.bnf.context.DbContents.readContents(DbContents.java:154)
    at org.h2.server.web.WebApp.tables(WebApp.java:698)
    at org.h2.server.web.WebApp.process(WebApp.java:225)
    at org.h2.server.web.WebApp.processRequest(WebApp.java:170)
    at org.h2.server.web.WebThread.process(WebThread.java:134)
    at org.h2.server.web.WebThread.run(WebThread.java:90)
    at java.base/java.lang.Thread.run(Thread.java:832)

我遵循了所有说明...我不知道为什么会收到此错误 - 我不知道我做错了什么。

谢谢,

tomkt,

2 个答案:

答案 0 :(得分:0)

不要删除开头的“jdbc:h2:”。我遵循相同的课程并发现了我的问题。只需更换 ~/test 部分。所以它应该看起来像“jdbc:h2:D:/...”

答案 1 :(得分:0)

因为在课堂上他们要求你把文件名粘贴到H2控制台上的JDBC文件中,但他并没有表明你需要留下前面的项目...

所以应该是 jdbc:h2:C:\your file path

如果您缺少字段前面的 jdbc:h2,它会失败并显示您上面的消息 enter image description here