Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

No suitable driver found

Boa noite pessoal,

No momento, meu código funciona corretamente só quando roda na JRE interna do Eclipse. Quando tento executar pelo terminal, ele apresenta o seguinte erro:

java.sql.SQLException: No suitable driver found for jdbc:hsqldb:hsql://localhost:9001/loja-virtual
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at TestaListagem.main(TestaListagem.java:10)

O servidor está rodando, consigo acessar a tabela pelo HSQL Manager, driver adicionado ao Build Path, então não consigo entender o que está acontecendo de errado.

Segue o código:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class TestaListagem {

    public static void main(String[] args) {
        try {
            Connection conexao = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:9001/loja-virtual","SA","");
            Statement statement = conexao.createStatement();
            boolean resultado  = statement.execute("select * from Produto;");
            System.out.println(resultado);
            conexao.close();
            statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

Meu OS é o Linux Mint 18.

Desde já agradeço!

2 respostas
solução!

Tudo bem, André?

Isto ocorre porque na hora de executar o programa ele não encontra o driver JDBC.

Apesar de estar no build path do Eclipse, só o eclipse na hora de rodar vai adicionar o jar do driver no classpath.

Na hora de rodar usando o comando java, você vai precisar indicar que o seu jar está no classpath, usando a opção -cp. Além do jar, você vai precisar passar o . (diretório atual):

Pensando numa classe que se conecta com o MySQL, e um driver que está em uma outra pasta da que estou rodando a classe com o main, ficaria:

java -cp 'C:\Users\lfeli\Documents\mysql-connector-java-5.1.45-bin.jar;.' TestaConexao

No seu caso tem que apontar pro driver do seu banco, e por o seu caminho no linux.

Testa aí e vê se funciona?

Abraço!

Obrigado Lucas! Funcionou, mas só no outro PC que eu tenho (Windows 10). Depois eu tento de novo no linux.