4

OpenOffice db に接続するために次のコードを書きました。

String db = "C:\\Documents and Settings\\hkonakanchi\\Desktop\\Test.odb";
Class.forName("org.hsqldb.jdbcDriver");
Connection con =  DriverManager.getConnection("jdbc:hsqldb:file:" + db,"sa","");
Statement statement = con.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM Emp");
while (rs.next()) {
System.out.print("ID: " + rs.getString("ID"));
System.out.print(" first name: " + rs.getString("firstname"));
System.out.println(" last name: " + rs.getString("lastname"));
}
con.close();

データベースには emp テーブルが含まれており、いくつかのデータが保存されています。

しかし、次のようなエラーメッセージが表示されます。

Exception in thread "main" java.sql.SQLException: 
Table not found in statement [SELECT * FROM Emp]
        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 Test.main(Test.java:16)

どうすればこれを解決できますか。hsqldb ドライバーを使用してオープン オフィス データベースに接続する方法を教えてください。

4

3 に答える 3

0

ローカルでアクセスしていた derby データベースにも同様の問題がありました。私の場合、SQL ステートメントに欠落していたのはスキーマでした。だから私は次のようなものが必要でした:

    select * from Emp.APP 

selectステートメントを取得して、表示されているエラーを生成しないようにします。

このウェブサイトhttp://hsqldb.org/doc/1.8/guide/ch09.html#select-sectionを見たところ、

table.* 

select ステートメントの例の一部として。したがって、* をデータベース名またはスキーマに置き換えると、問題が解決する可能性があると思います (または、単に .* で試してください)。

于 2012-07-03T16:14:30.183 に答える