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

Erro ao conectar ao Banco de dados.

O problema é o seguinte, o banco de dados funciona tranquilo, eu consigo consultar, inserir, até o momento que eu feche tudo e volto a estudar no outro dia, ai o banco não conecta e da o seguinte erro.


Exception in thread "main" java.sql.SQLTransientConnectionException: java.net.ConnectException: Connection refused
    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(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at DataBase.getConnection(DataBase.java:8)
    at TestaDB.main(TestaDB.java:21)
Caused by: org.hsqldb.HsqlException: java.net.ConnectException: Connection refused
    at org.hsqldb.ClientConnection.openConnection(Unknown Source)
    at org.hsqldb.ClientConnection.initConnection(Unknown Source)
    at org.hsqldb.ClientConnection.<init>(Unknown Source)
    ... 7 more
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)
    at org.hsqldb.server.HsqlSocketFactory.createSocket(Unknown Source)
    ... 10 more

Se eu criar o banco do zero novamente ele funciona normalmente, mas isso não faz sentido né? bem eu me dou muito bem com Mysql mas esse HSQLDB ta me dando um pouco de trabalho, mas vi os professores pedindo em alguns fóruns que usasse esse, então eu estou tentando.

5 respostas

Descobri aqui, é que o servidor do Banco tem que ser iniciado toda vida, é diferente do Mysql no linux que já sou acostumado, sendo assim tenho que executar o comando

java -cp hsqldb.jar org.hsqldb.server.Server --dbname.0 loja-virtual --database.0 file:loja-virtual

toda vez que quiser iniciar o servidor HSQLDB, posso ta enganado, mas acho que isso se deve ao fato de o banco ser uma biblioteca java e ter que ser iniciado toda vez, o que é diferente do Mysql que é um serviço do sistema operacional, mas tem como eu instalar o HSQLDB no meu sistema operacional? e fazer algo do tipo

 /etc/init.d/mysqld start

apesar de eu ter descoberto a causa do "problema" que não era um problema eu deixarei o forum em aberto alguns dias, na esperança que alguém me tire essa dúvida.

solução!

Ramires , Bom dia !!

toda vez que quiser executar o hsqldb tem que subir o banco . que bom você encontrou em seu código .

sobre sua dúvida , exatamente mysql tem um serviço para subir o banco quando inicia o computador .

com hsqldb o que pode ser feito para automatizar esse processo , é fazer um script com os comandos para subir o banco e se você utilizar o windows salve com .bat se você utilizar o linux você salve como .sh

e coloca esse script para inciar junto com o sistema operacional .

espero ter te ajudado , Bons Estudos

Celso recentemente eu adquiri um mac, ainda estou me adaptando, no linux eu tinha mais liberdade para fazer algumas coisas, mas atrevés de uma pesquisa muito rápida percebi que ele tem um App chamado "Automator", nesse caso eu consigo usar ele para automatizar essa tarefa?

Ramires ,

não sei te dizer pois não trabalho com o mac , então não sei dizer pra você como funciona esse aplicativo "Automator" .

mas sei te dizer que o terminal do mac consegue entender os comandos linux , onde você pode criar um script .sh pois ele roda em cima do unix .

mas dai não sei como você pode fazer para configurar para rodar o script quando subisse o mac OS , pois não conheço a estrutura do sistema .

Obrigado Celso pela atenção, consegui fazer aqui, é bem simples mesmo, esse automator só transforma o script.sh em um app. mas agora está tudo certinho.