6
respostas

Problema com a conexão

Boa tarde

Moderadores e instrutores, há alguns dias atrás postei uma dúvida sobre um problema de conexão, um dos moderadores me deu algumas instruções, mas o problema persiste. Segue abaixo o meu código para conexão e o erro apresentado pelo eclipse. Alguém teria mais alguma sugestão?

Obrigado

package br.com.caelum.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestaConexao {

    public static void main(String[] args) throws SQLException{
        Connection objConnection = DriverManager.getConnection("jdbc:hsqldb:hsql:"
                + "//localhost/loja-virtual", "SA", "");
        //Criação de um objeto statement que nos permitira executar instruções SQL no DB
        Statement objStm = objConnection.createStatement();

        //Metódo execute usado no obj satement. Se houver produtos irá retornar true
        boolean resultado = objStm.execute("SELECT * FROM PRODUTO"); 

        System.out.println("Há produtos cadastrados? " + resultado + "\n");

        //Objeto criadao para acessar o cojunto de dados retornados pela query
        ResultSet objResultado = objStm.getResultSet();

        /*
         * Após executar a query, o cursor de busca é posicionado antes do primeiro resultado.
         * precisamos desloca-lo linha a linha para capturar cada resultado da tabela 
         * O que acontece é que quando executamos a query o cursor fica posicionado antes do
         *  primeiro resultado. Caso não tenha nenhum resultado, o método next retorna 
         *  false e o loop não é executado
         */
        while(objResultado.next()){
            int id = objResultado.getInt("id");
            String nome = objResultado.getString("nome");
            String descricao = objResultado.getString("descricao");
            System.out.println("ID: " + id);
            System.out.println("PRODUTO: " + nome);
            System.out.println("DESCRIÇÃO: " + descricao + "\n");
        }
        //Fechamento da conexão
        objResultado.close();
        objStm.close();    
        objConnection.close();
        }

}

O erro recebido no eclipse é:

Exception in thread "main" java.sql.SQLTransientConnectionException: java.net.ConnectException: Connection refused: connect
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at br.com.caelum.jdbc.TestaConexao.main(TestaConexao.java:12)
Caused by: org.hsqldb.HsqlException: java.net.ConnectException: Connection refused: connect
    at org.hsqldb.ClientConnection.openConnection(Unknown Source)
    at org.hsqldb.ClientConnection.initConnection(Unknown Source)
    at org.hsqldb.ClientConnection.<init>(Unknown Source)
    ... 6 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at org.hsqldb.server.HsqlSocketFactory.createSocket(Unknown Source)
    ... 9 more
6 respostas

Boa tarde Frederico, o drive do banco está no classpath?

Boa tarde

Está sim, foi a primeira coisa que fiz.

Perfeito Frederico, está com o banco em pé(rodando)? tudo certinho?

Sim, mas o erro persiste.

O problema ainda não foi resolvido, alguém teria alguma sugestão?

Obrigado a todos pelas respostas, estava esquecendo realmente de rodar o BD antes de conectar. Problema resolvido.