Tenho a seguinte estrutura de diretorio:
1 ceppj
1.1 db
1.1.1 ceppj.script (arquivo)
1.1.2 ceppj.proprieties (arquivo)
1.2 java
1.2.1 classes
1.2.1.1 Conexao.java (arquivo)
1.2.1.2 Teste.java (arquivo)
1.2.1.3 Conexao.class (arquivo)
1.2.1.4 Teste.class (arquivo)
Nos Conexao.java e Teste.java, possuem respectivamente os seguintes conteúdos:
[code]/*
Conexao.java
*/
public class Conexao {
public static String DRIVER = org.hsqldb.jdbcDriver.class.getName();
public static String URL_BANCO = "jdbc:odbc:../db/ceppj";
public static String USUARIO = "sa";
public static String SENHA = "";
private static java.sql.Connection conexao = null;
public static java.sql.Connection obterConexao() throws java.lang.Exception {
if (conexao == null) {
try {
java.lang.Class.forName(DRIVER).newInstance();
conexao = java.sql.DriverManager.getConnection(URL_BANCO, USUARIO, SENHA);
} catch (java.lang.InstantiationException e) {
e.printStackTrace();
throw new java.lang.Exception("Erro ao criar instância do driver.");
} catch (java.lang.ClassNotFoundException e) {
e.printStackTrace();
throw new java.lang.Exception("Classe do driver não encontrada.");
} catch (java.lang.IllegalAccessException e) {
e.printStackTrace();
throw new java.lang.Exception("Classe do driver não pode ser carregada.");
} catch (java.sql.SQLException e) {
e.printStackTrace();
throw new java.lang.Exception("Erro ao conectar com o banco de dados.");
}
}
return (conexao);
}
}[/code]
e
/*
Teste.java
*/
public class Teste {
public static void main(String [] args) {
try {
java.lang.String sql = "SELECT ProfissaoNome FROM Profissao";
java.sql.Statement comando = Conexao.obterConexao().createStatement();
java.sql.ResultSet registro = comando.executeQuery(sql);
while (registro.next()) {
System.out.println(registro.getString("ProfissaoNome"));
}
registro.close();
} catch (java.sql.SQLException e) {
System.out.println(e.getMessage());
} catch (java.lang.Exception e) {
System.out.println(e.getMessage());
}
}
}
Ambos compilam normalmente, mas ao executar o arquivo Teste.class (java Teste) a seguinte mensagem acontece:
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:532)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at Conexao.obterConexao(Conexao.java:27)
at Teste.main(Teste.java:5)
Erro ao conectar com o banco de dados.
Meu CLASSPATH é o seguinte:
.;C:Program Filesj2sdk_nbj2sdk1.4.2lib;C:Program Fileshsqldblib;C:Program Fileshsqldblibhsqldb.jar
Alguém consegue me explicar por que os demos que veem com o HSQLDB funcionam, e esse exemplo, não?
Muito grato desde já.