Подключиться к odb файлу Open Office с помощью программы jdbc - PullRequest
4 голосов
/ 13 февраля 2012

Я написал следующий код для подключения к 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?

Ответы [ 3 ]

4 голосов
/ 02 февраля 2013

наконец я нашел решение.но, к сожалению, вам нужно изменить свою базу данных с odb на hsql.

1.переименовать файл odb в yourdatabasename.zip

2. извлечь его

3. теперь вы можетенайти файлы резервных копий, данных, сценариев и свойств в каталоге базы данных в папке базы данных.

4. переименуйте эти файлы в yourdatabasename.data, yourdatabasename.backup, yourdatabasename.script, yourdatabasename.properties

5. Теперь ваше соединение должно быть таким: «jdbc: hsqldb: file: Addresstoyourdatabase / database / yourdatabasename»

6. Не забудьте поставить «вокруг имени таблицы как:« SELECT * FROM \ »Emp\ ""

2 голосов
/ 26 января 2019

Я разработал простой (только для чтения) драйвер JDBC, который в основном извлекает файл .odb и перенаправляет все вызовы в драйвер HSQLDB. Может быть, это тоже кому-нибудь пригодится.

0 голосов
/ 03 июля 2012

У меня была похожая проблема с базой данных derby, к которой я обращался локально.В моем случае это была схема, которая отсутствовала в моем операторе SQL.Поэтому мне нужно было что-то вроде:

    select * from Emp.APP 

, чтобы оператор выбора не генерировал ошибку, которую вы видите.

Я посмотрел этот веб-сайт http://hsqldb.org/doc/1.8/guide/ch09.html#select-section и заметил, что он содержит

table.* 

как часть примера оператора выбора.Поэтому я предполагаю, что замена * на имя базы данных или схему может решить вашу проблему (или просто попробовать. *).

...