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

Dúvida no Ex. 1 da Aula 1 - Trabalhando com um banco de dados

Na hora de criar o banco no DatabaseManager recebo esse retorno:

General error: Database alias does not exist

Já tentei criar o projeto loja-virtual em varios locais diferentes do computador, inclusive dentro da raiz do c:

o comando usado para inicar o DatabaseManager foi: java -cp hsqldb.jar org.hsqldb.util.DatabaseManager

e a tela com o servidor do baco esta aberta e rodando normalmente, mas quando tento criar a conexão com o banco recebo a mensagem na tela, e a mesma na console do servidor do banco que esta rodando

[Thread[HSQLDB Connection @18b135db,5,HSQLDB Connections @4517d9a3]]: database alias=loja-virtual does not exist.

atualmente o projeto esta na pasta c:\loja-virtual

Se tento compilar pela console, ele me retorna a mensagem:

Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:hsqldb:hsql://localhost/loja-virtual at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at TestaConexao.main(TestaConexao.java:8)

É como se ele não estivesse conseguindo achar o driver do hsqldb, mas ele foi copiado para a pasta do projeto, se dou um dir pela console o arquivo hsqldb.jar esta la, e já cliquei com o botão direito no arquivo dentro do eclipe e mandei adicionar o caminho, se clico novamente com o botão direito tenho agora a opção de remover o caminho ou migrate jar file ...

Obrigado

Emerson

12 respostas

Emerson, Boa Tarde !

vamos por parte ok !

no prompt de comando entre na sua pasta do projeto de loja virtual , e execute o seguinte comando :

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

esse comando criará o database , chamado loja-virtual

feito isso faça o seguinte comando para subir seu banco :

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

feito isso você ja consegue verificar através do código java se consegue conectar com o banco através do código abaixo :

public static void main (String[] args {
    Connection c =         DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/loja-virtual", "SA", "");

System.out.println("Conexão aberta!");

c.close();
}

teste e veja se deu certo , ok !

Bons estudos

Executei o primeiro comando e ele criou a base de dados e inicializou o servidor. Precionei CTRL +C para para o servidor e executei o segundo comando. O Servidor inicializou novamente com sucesso, sem mensagens de erro.

Colei o código que vc enviou dentro de uma class TestaExecuxao conforme abaixo:

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

public class TestaConexao {

public static void main (String[] args) throws SQLException { Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/loja-virtual", "SA", "");

System.out.println("Conexão aberta!");

c.close(); } }

Quando executei recebi a mensagem de erro database alias does not exist, detalhes abaixo.

Exception in thread "main" java.sql.SQLException: General error: database alias does not exist at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCConnection.(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 TestaConexao.main(TestaConexao.java:8) Caused by: org.hsqldb.HsqlException: General error: database alias does not exist at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.ClientConnection.(Unknown Source) ... 6 more

Emerson,

legal funcionou subir o banco , vamos testar ele com o seguinte comando , ok

java -cp hsqldb.jar  org.hsqldb.util.DatabaseManager

esse comando é feito com em outro prompt de comando , escolha a opção 'HSQL Database Engine Server'

adicione loja-virtual no fim da url .

tente criar uma tabela

você importou o biblioteca hsqldb para seu projeto ?

baixe nesse link o arquivo hsqldb arraste seu arquivo hsqldb.jar que encontra lib/hsqldb.jar para o projeto no eclipse , e clique com o botão direito nele e em build Path adicione ele ao seu projeto .

se ja importou , tente excluir e importar novamente .

Ok, executei o comando java -cp hsqldb.jar org.hsqldb.util.DatabaseManager

A tela apareceu, escolhi HSQL Database Engine Server e adicionei loja-virtual no final da url, assim que clico ok recebo o seguinte erro no rodapé da tela do Database Manager:

java.sql.SQLExcepition: General error: database alias does not exist

você subiu o banco de dados , e depois realizou esse procedimento ?

Sim, subi o banco, e deu tudo certo, recebi a mensagem:

[Server@4517d9a3]: [Thread[main,5,main]]: checkRunning(false) entered [Server@4517d9a3]: [Thread[main,5,main]]: checkRunning(false) exited [Server@4517d9a3]: Startup sequence initiated from main() method [Server@4517d9a3]: Could not load properties from file [Server@4517d9a3]: Using cli/default properties only [Server@4517d9a3]: Initiating startup sequence... [Server@4517d9a3]: Server socket opened successfully in 31 ms. [Server@4517d9a3]: Database [index=0, id=0, db=file:test, alias=] opened sucessfully in 1766 ms. [Server@4517d9a3]: Startup sequence completed in 1813 ms. [Server@4517d9a3]: 2015-10-14 09:43:47.032 HSQLDB server 2.3.3 is online on port 9001 [Server@4517d9a3]: To close normally, connect and execute SHUTDOWN SQL [Server@4517d9a3]: From command line, use [Ctrl]+[C] to abort abruptly

Veja que o banco esta no ar, mas quando abro o DatabaseManager em uma nova janela, e clico ok recebo a mensagem na tela do DatabaseManager:

java.sql.SQLExcepition: General error: database alias does not exist

e a seguinte mensagem na tela do servidor:

[Thread[HSQLDB Connection @6dcc1997,5,HSQLDB Connections @4517d9a3]]: database alias=loja-virtual does not exist

Como pode ver tenho um problema de alias, já tentei rodar em varios locais diferentes do computador, inclusive da raiz do C:, mas ele não resolve o caminho.

Emerson,

Repare nessa linha quando você sobe seu banco :

Database [index=0, id=0, db=file:test, alias=]

ele não está associando alias como loja-virtual sem contar que seu arquivo está com nome de test

você ja fez alguma conexão com test ?

o nome do arquivo do database , está chamando test e não loja-virtual

tem algo errado na sua criação do seu banco

Verdade, mas eu nunca criei um banco test.

Para testar apaguei todos os arquivos test que estavam na pasta c:\loja-virtual, e criei o banco novamente com o comando:

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

mas ele continua criando o db=file:test, e o alias = vazio

tem alguma ideia do porque isto pode estar ocorrendo ou o que posso fazer para resolver?

Para testar tentei conectar na base test, ou seja escrevi test no final da url, e no código que abre o banco:

Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/test", "SA", "");

Mas o mesmo erro de Database alias does not exist continua aparecendo.

O que deveria aparecer após o campo alias na mensagem : Database [index=0, id=0, db=file:test, alias=] quando o banco é inicializado?

solução!

Emerson ,

deveria aparecer a seguinte :

[Server@4517d9a3]: Database [index=0, id=0, db=file:loja-virtual, alias=loja-virtual] tual] opened sucessfully in 1531 ms.

vamos tentar executar todos os passos de criação de banco , passo - a -passo , ok !

no prompt vá na pasta de seu projeto e digite o seguint comando :

java -cp hsqldb.jar org.hsqldb.server.Server

depois esse :

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

e depois esse :

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

comigo já aconteceu uma vez isso , realizei todos esses procedimentos e deu certo .

veja se irá dar certo contigo também

Deu certo, executei um comando de cada vez, ao final de cada um dei CTRL + C para parar o servidor e executar o próximo, ao final do ultimo comando ele criou o banco loja-virtual com file e alias corretos.

Muito obrigado por sua ajuda.

Emerson