【问题标题】:Table not found in statement语句中未找到表
【发布时间】:2017-01-04 13:00:26
【问题描述】:
Class.forName("org.hsqldb.jdbcDriver");
    conn = DriverManager.getConnection("jdbc:hsqldb:file:Pokemondaten","sa","");
    getData = conn.createStatement();
    ResultSet rs = getData.executeQuery
    ("SELECT HP FROM PKMN WHERE ID = " + basicnumber); 
    int hpp = rs.getInt(1);
    System.out.println(hpp);

我得到的只是

java.sql.SQLException: Table not found in statement [SELECT HP FROM PKMN]
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
    at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
    at org.hsqldb.jdbc.jdbcStatement.executeQuery(Unknown Source)
    at pokeWpRechner.Main.main(Main.java:46)

我的数据库被称为Pokemondaten,我的表被称为PKMN,我的表也是在程序中继承的。

那么我做错了什么?我不明白。

【问题讨论】:

  • 检查你的桌子是否真的在那里:How to see all the tables in an HSQLDB database?
  • java.sql.SQLException: No data is available 这确实意味着我的数据库不在我想要的位置,不是吗?
  • 您在哪里创建表 PKMN?
  • 它已经存在,内置在 OpenOffice Base 中,然后添加到程序中

标签: java database eclipse odb


【解决方案1】:

试试下面的

conn = DriverManager.getConnection("jdbc:hsqldb:file:Pokemondaten;shutdown=true","sa","")

这应该可以防止表定义丢失

【讨论】:

    【解决方案2】:

    我认为您需要在 JDBC URL 中提供数据库文件的完整路径:

    DriverManager.getConnection("jdbc:hsqldb:file:c:\mydir\Pokemondaten","sa","");

    【讨论】:

    • 这就是我试图避免的 :( 我希望 DB 顶部的位置灵活(程序所在的位置),但无论如何我都会尝试让它运行
    • @Ekonion 你应该能够像这样从你的程序运行的地方获取当前路径:Paths.get(".").toAbsolutePath().normalize().toString() 然后你可以使用这个字符串来创建你的数据库文件的绝对路径。跨度>
    • java.sql.SQLException: No data is available 仍然
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2017-11-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多