2
respostas

Problema com a conexão

Bom dia

Consegui criar o banco e acessa-lo corretamente na primeira vez. Porém após a criação quando tento acessa-lo recebo o seguinte erro:

java.sql.SQLTransientConnectionException: java.net.ConnectException: Connection refused: connect

O comando que estou usando para acessar é: java -cp hsqldb.jar org.hsqldb.util.DatabaseManager

Alguém saberia me explicar onde está o problema?

Obrigado

2 respostas

Estranho ter funcionado apenas uma vez, qualquer coisa se não resolver posta o código, tente isso "Select "run configurations..." -> tomcat server -> classpath -> user entries ->hsqldb.jar"

Adicione também sqltool.jar no seu classpath e ve se funciona.

Boa tarde

Não resolveu. Segue o código da minha classe TestaConexao

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