Eu criei um arquivo HSQLDB usando o LibreOffice Base 4.4.7.2. Na Ferramenta > Opção > Avançado, o caminho da classe JRE é definido como meu JDK 1.7.0_80 & está selecionado. O banco de dados contém uma tabela denominada TABLE1.
No Eclipse IDE, adicionei o hsqldb.jar (versão 2.3.4 baixada do hsql.org) para "Bibliotecas referenciadas" em Java Build Path. Aqui estão os códigos para acessar o arquivo com o JDBC:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public static void main(String[] args) {
Connection conn = null;
try {
Class.forName("org.hsqldb.jdbc.JDBCDriver");
String url = "jdbc:hsqldb:file:C:/mydb.odb;default_schema=true";
conn = DriverManager.getConnection(url, "SA", "");
System.out.println("Connection to Hypersql has been established.");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM TABLE1");
rs.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
Quando é executado até o executeQuery, o SQLException "usuário não possui privilégio ou objeto não encontrado: TABLE1" foi lançado. O que há de errado?
Tags java libreoffice database embedded jdbc