嗨,我正在使用 H2 数据库进行在线教程。
我下载了 H2 数据库 jar 文件并将其放入一个 lib 文件中,如下所示:
我还在我的项目结构中创建了一个库,如下所示:
要测试的主要代码:
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 应用程序中):
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,
答案 0 :(得分:0)
不要删除开头的“jdbc:h2:”。我遵循相同的课程并发现了我的问题。只需更换 ~/test 部分。所以它应该看起来像“jdbc:h2:D:/...”
答案 1 :(得分:0)
因为在课堂上他们要求你把文件名粘贴到H2控制台上的JDBC文件中,但他并没有表明你需要留下前面的项目...
所以应该是 jdbc:h2:C:\your file path
如果您缺少字段前面的 jdbc:h2,它会失败并显示您上面的消息 enter image description here